diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-01-21 09:04:53 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-01-21 09:04:53 +0000 |
commit | cffdfb3da6d9c30035f1a074e27cf4b916446404 (patch) | |
tree | 33d3bb74da1e52661a0940e472d95cdc4efa58ef /gcc/tree-core.h | |
parent | 9ba76f646a545c73164d8729d745f10111183575 (diff) | |
download | gcc-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.h | 13 |
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; |