I was confused at first why tree-core.h was undefining DEF_BUILTIN_CHKP
before defining it, then undefining it again after including builtins.def.
This is because builtins.def provides a default definition of
DEF_BUILTIN_CHKP, but leaves it up to the caller to undefine it where
necessary. Similarly to the previous internal-fn.def patch, it seems
more obvious for builtins.def to #undef things unconditionally.
One argument might have been that keeping preprocessor stuff
out of the .def files makes it easier for non-cpp parsers. In practice
though we already have #ifs and multiline #defines, so single-line #undefs
should be easy in comparison.
Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
gcc/ada/
* gcc-interface/utils.c: Don't undef DEF_BUILTIN.
gcc/c-family/
* c-common.c: Don't undef DEF_BUILTIN.
gcc/jit/
* jit-builtins.c: Don't undef DEF_BUILTIN.
gcc/lto/
* lto-lang.c: Don't undef DEF_BUILTIN.
gcc/
* builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
* builtins.c, genmatch.c, tree-core.h: Don't undef them here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229924
138bc75d-0d04-0410-961f-
82ee72b054a4
2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
+ * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
+ * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
+
+2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
+
* internal-fn.def: #undef DEF_INTERNAL_FN at the end.
* internal-fn.c: Don't undef it here.
* tree-core.h: Likewise.
+2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc-interface/utils.c: Don't undef DEF_BUILTIN.
+
2015-10-29 Andrew MacLeod <amacleod@redhat.com>
* gcc-interface/decl.c: Reorder #include's and remove duplicates.
BOTH_P, FALLBACK_P, NONANSI_P, \
built_in_attributes[(int) ATTRS], IMPLICIT);
#include "builtins.def"
-#undef DEF_BUILTIN
}
/* ----------------------------------------------------------------------- *
{
#include "builtins.def"
};
-#undef DEF_BUILTIN
/* Setup an array of builtin_info_type, make sure each element decl is
initialized to NULL_TREE. */
/* Pointer Bounds Checker builtins. */
#include "chkp-builtins.def"
+
+#undef DEF_BUILTIN_CHKP
+#undef DEF_BUILTIN
+2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
+
+ * c-common.c: Don't undef DEF_BUILTIN.
+
2015-11-06 David Malcolm <dmalcolm@redhat.com>
* c-common.c (c_cpp_error): Convert parameter from location_t to
BOTH_P, FALLBACK_P, NONANSI_P, \
built_in_attributes[(int) ATTRS], IMPLICIT);
#include "builtins.def"
-#undef DEF_BUILTIN
targetm.init_builtins ();
#include "builtins.def"
END_BUILTINS
};
-#undef DEF_BUILTIN
/* Return true if CODE represents a commutative tree code. Otherwise
return false. */
#define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) \
add_builtin (ENUM, # ENUM);
#include "builtins.def"
-#undef DEF_BUILTIN
/* Parse ahead! */
parser p (r);
+2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
+
+ * jit-builtins.c: Don't undef DEF_BUILTIN.
+
2015-10-29 Andrew MacLeod <amacleod@redhat.com>
* dummy-frontend.c: Reorder #include's and remove duplicates.
{
#include "builtins.def"
};
-#undef DEF_BUILTIN
/* Helper function for find_builtin_by_name. */
+2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
+
+ * lto-lang.c: Don't undef DEF_BUILTIN.
+
2015-10-29 Andrew MacLeod <amacleod@redhat.com>
* lto-lang.c: Reorder #include's and remove duplicates.
builtin_types[(int) LIBTYPE], BOTH_P, FALLBACK_P, \
NONANSI_P, built_in_attributes[(int) ATTRS], IMPLICIT);
#include "builtins.def"
-#undef DEF_BUILTIN
}
static GTY(()) tree registered_builtin_types;
BEGIN_CHKP_BUILTINS,
-#undef DEF_BUILTIN
#define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND)
-#undef DEF_BUILTIN_CHKP
#define DEF_BUILTIN_CHKP(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) \
ENUM##_CHKP = ENUM + BEGIN_CHKP_BUILTINS + 1,
#include "builtins.def"
-#undef DEF_BUILTIN_CHKP
END_CHKP_BUILTINS = BEGIN_CHKP_BUILTINS * 2 + 1,
/* Upper bound on non-language-specific builtins. */
END_BUILTINS
};
-#undef DEF_BUILTIN
/* Tree code classes. Each tree_code has an associated code class
represented by a TREE_CODE_CLASS. */