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__))