@@ -2565,15 +2565,21 @@ initialize_sanitizer_builtins (void)
#define ATTR_PURE_NOTHROW_LEAF_LIST ECF_PURE | ATTR_NOTHROW_LEAF_LIST
#undef DEF_BUILTIN_STUB
#define DEF_BUILTIN_STUB(ENUM, NAME)
+
+#define DEF_SANITIZER_BUILTIN_TERM ;
#undef DEF_SANITIZER_BUILTIN
-#define DEF_SANITIZER_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
+#define DEF_SANITIZER_BUILTIN(ENUM, NAME, TYPE, ATTRS) do { \
decl = add_builtin_function ("__builtin_" NAME, TYPE, ENUM, \
BUILT_IN_NORMAL, NAME, NULL_TREE); \
set_call_expr_flags (decl, ATTRS); \
- set_builtin_decl (ENUM, decl, true);
+ set_builtin_decl (ENUM, decl, true); \
+ } while (0) DEF_SANITIZER_BUILTIN_TERM
#include "sanitizer.def"
+#undef DEF_SANITIZER_BUILTIN_TERM
+#define DEF_SANITIZER_BUILTIN_TERM /* empty */
+
/* -fsanitize=object-size uses __builtin_object_size, but that might
not be available for e.g. Fortran at this point. We use
DEF_SANITIZER_BUILTIN here only as a convenience macro. */
@@ -2581,7 +2587,7 @@ initialize_sanitizer_builtins (void)
&& !builtin_decl_implicit_p (BUILT_IN_OBJECT_SIZE))
DEF_SANITIZER_BUILTIN (BUILT_IN_OBJECT_SIZE, "object_size",
BT_FN_SIZE_CONST_PTR_INT,
- ATTR_PURE_NOTHROW_LEAF_LIST)
+ ATTR_PURE_NOTHROW_LEAF_LIST);
#undef DEF_SANITIZER_BUILTIN
#undef DEF_BUILTIN_STUB