summaryrefslogtreecommitdiff
path: root/gcc/tree-core.h
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2015-01-21 09:04:53 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2015-01-21 09:04:53 +0000
commitcffdfb3da6d9c30035f1a074e27cf4b916446404 (patch)
tree33d3bb74da1e52661a0940e472d95cdc4efa58ef /gcc/tree-core.h
parent9ba76f646a545c73164d8729d745f10111183575 (diff)
downloadgcc-cffdfb3da6d9c30035f1a074e27cf4b916446404.tar.gz
2015-01-21 Richard Biener <rguenther@suse.de>
PR middle-end/64313 * tree-core.h (builtin_info, builtin_info_type): Turn from an object with two arrays into an array of an object with decl and two flags, implicit_p and declared_p. * tree.h (builtin_decl_explicit, builtin_decl_implicit, set_builtin_decl, set_builtin_decl_implicit_p, builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust. (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions. * builtins.c (builtin_info): Adjust. * gimplify.c (gimplify_addr_expr): References to builtins that have been declared by the user makes them eligible for use by the compiler. Call set_builtin_decl_implicit_p on them. c/ * c-decl.c (merge_decls): Call set_builtin_decl_declared_p for builtins the user declared correctly. cp/ * decl.c (duplicate_decls): Call set_builtin_decl_declared_p for builtins the user declared correctly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219928 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-core.h')
-rw-r--r--gcc/tree-core.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/tree-core.h b/gcc/tree-core.h
index 735ce5cf307..c7a21b5c353 100644
--- a/gcc/tree-core.h
+++ b/gcc/tree-core.h
@@ -1853,11 +1853,14 @@ struct const_call_expr_arg_iterator {
};
/* The builtin_info structure holds the FUNCTION_DECL of the standard builtin
- function, and a flag that says if the function is available implicitly, or
- whether the user has to code explicit calls to __builtin_<xxx>. */
+ function, and flags. */
struct GTY(()) builtin_info_type {
- tree decl[(int)END_BUILTINS];
- bool implicit_p[(int)END_BUILTINS];
+ tree decl;
+ /* Whether the user can use <xxx> instead of explicitly using calls
+ to __builtin_<xxx>. */
+ unsigned implicit_p : 1;
+ /* Whether the user has provided a declaration of <xxx>. */
+ unsigned declared_p : 1;
};
@@ -1913,7 +1916,7 @@ extern int tree_node_sizes[];
extern bool in_gimple_form;
/* Functional interface to the builtin functions. */
-extern GTY(()) builtin_info_type builtin_info;
+extern GTY(()) builtin_info_type builtin_info[(int)END_BUILTINS];
/* If nonzero, an upper limit on alignment of structure fields, in bits, */
extern unsigned int maximum_field_alignment;