https://gcc.gnu.org/g:248e8530dd0298e9bbe099c651d5d9c4d2a0c0f9

commit r15-2145-g248e8530dd0298e9bbe099c651d5d9c4d2a0c0f9
Author: Ian Lance Taylor <i...@golang.org>
Date:   Thu Jul 18 11:34:09 2024 -0700

    libbacktrace: use __has_attribute for fallthrough
    
    Also convert some FALLTHROUGH comments to ATTRIBUTE_FALLTHROUGH.
    
            * internal.h: Use __has_attribute to check for fallthrough
            attribute.
            * elf.c (elf_zstd_decompress): Use ATTRIBUTE_FALLTHROUGH rather
            than a FALLTHROUGH comment.

Diff:
---
 libbacktrace/elf.c      | 14 +++++++-------
 libbacktrace/internal.h |  5 +++++
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/libbacktrace/elf.c b/libbacktrace/elf.c
index e8d67feab6d3..0040479143d6 100644
--- a/libbacktrace/elf.c
+++ b/libbacktrace/elf.c
@@ -4848,25 +4848,25 @@ elf_zstd_decompress (const unsigned char *pin, size_t 
sin,
                  {
                  case 8:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 7:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 6:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 5:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 4:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 3:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 2:
                    *pout++ = *plit++;
-                   /* FALLTHROUGH */
+                   ATTRIBUTE_FALLTHROUGH;
                  case 1:
                    *pout++ = *plit++;
                    break;
diff --git a/libbacktrace/internal.h b/libbacktrace/internal.h
index a119cda692fd..fe2abe50b0f3 100644
--- a/libbacktrace/internal.h
+++ b/libbacktrace/internal.h
@@ -56,6 +56,11 @@ POSSIBILITY OF SUCH DAMAGE.  */
 # endif
 #endif
 
+#ifdef __has_attribute
+# if __has_attribute(fallthrough)
+#  define ATTRIBUTE_FALLTHROUGH __attribute__ ((fallthrough))
+# endif
+#endif
 #ifndef ATTRIBUTE_FALLTHROUGH
 # if (GCC_VERSION >= 7000)
 #  define ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))

Reply via email to