[gcc r11-4136] libbacktrace: use __attribute__((__fallthrough__))

Ian Lance Taylor ian@gcc.gnu.org
Tue Oct 20 18:50:11 GMT 2020


https://gcc.gnu.org/g:d962ef77dadea87b2bf30487bddda00c350bf0ba

commit r11-4136-gd962ef77dadea87b2bf30487bddda00c350bf0ba
Author: Ian Lance Taylor <iant@golang.org>
Date:   Tue Oct 20 11:47:35 2020 -0700

    libbacktrace: use __attribute__((__fallthrough__))
    
    Use an attribute rather than a comment when falling through a switch case.
    
            * internal.h (ATTRIBUTE_FALLTHROUGH): Define.
            * elf.c (elf_zlib_inflate): Use ATTRIBUTE_FALLTHROUGH.

Diff:
---
 libbacktrace/elf.c      | 16 ++++++++--------
 libbacktrace/internal.h |  8 ++++++++
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/libbacktrace/elf.c b/libbacktrace/elf.c
index 941f820d944..d52b86cdeb5 100644
--- a/libbacktrace/elf.c
+++ b/libbacktrace/elf.c
@@ -2081,10 +2081,10 @@ elf_zlib_inflate (const unsigned char *pin, size_t sin, uint16_t *zdebug_table,
 			{
 			case 6:
 			  *plen++ = prev;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 5:
 			  *plen++ = prev;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 4:
 			  *plen++ = prev;
 			}
@@ -2115,22 +2115,22 @@ elf_zlib_inflate (const unsigned char *pin, size_t sin, uint16_t *zdebug_table,
 			{
 			case 10:
 			  *plen++ = 0;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 9:
 			  *plen++ = 0;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 8:
 			  *plen++ = 0;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 7:
 			  *plen++ = 0;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 6:
 			  *plen++ = 0;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 5:
 			  *plen++ = 0;
-			  /* fallthrough */
+			  ATTRIBUTE_FALLTHROUGH;
 			case 4:
 			  *plen++ = 0;
 			}
diff --git a/libbacktrace/internal.h b/libbacktrace/internal.h
index 047a700c0ce..659db9e21e2 100644
--- a/libbacktrace/internal.h
+++ b/libbacktrace/internal.h
@@ -56,6 +56,14 @@ POSSIBILITY OF SUCH DAMAGE.  */
 # endif
 #endif
 
+#ifndef ATTRIBUTE_FALLTHROUGH
+# if (GCC_VERSION >= 7000)
+#  define ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
+# else
+#  define ATTRIBUTE_FALLTHROUGH
+# endif
+#endif
+
 #ifndef HAVE_SYNC_FUNCTIONS
 
 /* Define out the sync functions.  These should never be called if


More information about the Gcc-cvs mailing list