@@ -92,8 +92,8 @@ libat_compare_exchange (size_t n, void *mptr, void *eptr, void *dptr,
case 8: EXACT(8); goto L16;
case 16: EXACT(16); break;
- case 3: L4: LARGER(4); /* FALLTHRU */
- case 5 ... 7: L8: LARGER(8); /* FALLTHRU */
+ case 3: L4: LARGER(4); /* FALLTHRU */ libat_fallthrough ();
+ case 5 ... 7: L8: LARGER(8); /* FALLTHRU */ libat_fallthrough ();
case 9 ... 15: L16: LARGER(16); break;
Lsucc:
@@ -116,8 +116,8 @@ libat_exchange (size_t n, void *mptr, void *vptr, void *rptr, int smodel)
case 8: EXACT(8); goto L16;
case 16: EXACT(16); break;
- case 3: L4: LARGER(4); /* FALLTHRU */
- case 5 ... 7: L8: LARGER(8); /* FALLTHRU */
+ case 3: L4: LARGER(4); /* FALLTHRU */ libat_fallthrough ();
+ case 5 ... 7: L8: LARGER(8); /* FALLTHRU */ libat_fallthrough ();
case 9 ... 15: L16: LARGER(16); break;
Lfinish:
@@ -56,8 +56,8 @@ libat_is_lock_free (size_t n, void *ptr)
case 8: EXACT(8); goto L16;
case 16: EXACT(16); break;
- case 3: L4: LARGER(4); /* FALLTHRU */
- case 5 ... 7: L8: LARGER(8); /* FALLTHRU */
+ case 3: L4: LARGER(4); /* FALLTHRU */ libat_fallthrough ();
+ case 5 ... 7: L8: LARGER(8); /* FALLTHRU */ libat_fallthrough ();
case 9 ... 15: L16: LARGER(16); break;
}
@@ -79,8 +79,8 @@ libat_load (size_t n, void *mptr, void *rptr, int smodel)
case 8: EXACT(8); goto L16;
case 16: EXACT(16); break;
- case 3: L4: LARGER(4); /* FALLTHRU */
- case 5 ... 7: L8: LARGER(8); /* FALLTHRU */
+ case 3: L4: LARGER(4); /* FALLTHRU */ libat_fallthrough ();
+ case 5 ... 7: L8: LARGER(8); /* FALLTHRU */ libat_fallthrough ();
case 9 ... 15: L16: LARGER(16); break;
Lfinish:
@@ -91,8 +91,8 @@ libat_store (size_t n, void *mptr, void *vptr, int smodel)
case 8: EXACT(8); goto L16;
case 16: EXACT(16); break;
- case 3: L4: LARGER(4); /* FALLTHRU */
- case 5 ... 7: L8: LARGER(8); /* FALLTHRU */
+ case 3: L4: LARGER(4); /* FALLTHRU */ libat_fallthrough ();
+ case 5 ... 7: L8: LARGER(8); /* FALLTHRU */ libat_fallthrough ();
case 9 ... 15: L16: LARGER(16); break;
}
@@ -200,6 +200,12 @@ void libat_unlock_n (void *ptr, size_t n);
# define DECLARE_1(RET,NAME,ARGS) RET C2(libat_,NAME) ARGS MAN(NAME)
#endif
+#if __GNUC__ >= 7
+# define libat_fallthrough() __builtin_fallthrough ()
+#else
+# define libat_fallthrough()
+#endif
+
/* Prefix to use when calling internal, possibly ifunc'ed functions. */
#if HAVE_IFUNC
# define local_ ifunc_