diff options
author | Nathan Sidwell <nathan@acm.org> | 2019-05-28 13:31:16 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2019-05-28 13:31:16 +0000 |
commit | 7daef9aceb80787d9fd64b4e110b175b4d9e5a9e (patch) | |
tree | e8ff7e7170740fbcd3cf83d7662f6be7b2bf2ee0 /gcc/tree.h | |
parent | 3253d4f0266fb7aa4e70cf6afcfac9b690cfed4a (diff) | |
download | gcc-7daef9aceb80787d9fd64b4e110b175b4d9e5a9e.zip gcc-7daef9aceb80787d9fd64b4e110b175b4d9e5a9e.tar.gz gcc-7daef9aceb80787d9fd64b4e110b175b4d9e5a9e.tar.bz2 |
[PATCH] Commonize anon-name generation
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01699.html
* tree.h (IDENTIFIER_ANON_P): New.
(anon_aggrname_format, anon_aggname_p): Don't declare.
(make_anon_name): Declare.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
(hash_tree): Likewise.
* tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
* tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
(anon_cnt, make_anon_name): New.
gcc/cp/
* cp-tree.h (make_anon_name): Drop declaration.
(TYPE_UNNAMED_P): Use IDENTIFIER_ANON_P.
* cp-lang.c (cxx_dwarf_name): Likewise.
* class.c (find_flexarrays): Likewise.
* decl.c (name_unnamed_type, xref_tag_1): Likewise.
* error.c (dump_aggr_type): Likewise.
* pt.c (push_template_decl_real): Likewise.
* name-lookup.c (consider_binding_level): Likewise.
(anon_cnt, make_anon_name): Delete.
gcc/d/
* types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
(layout_aggregate_members): Use make_anon_name.
From-SVN: r271702
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -932,6 +932,11 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, #define TREE_DEPRECATED(NODE) \ ((NODE)->base.deprecated_flag) +/* Nonzero indicates an IDENTIFIER_NODE that names an anonymous + aggregate, (as created by anon_aggr_name_format). */ +#define IDENTIFIER_ANON_P(NODE) \ + (IDENTIFIER_NODE_CHECK (NODE)->base.private_flag) + /* Nonzero in an IDENTIFIER_NODE if the name is a local alias, whose uses are to be substituted for uses of the TREE_CHAINed identifier. */ #define IDENTIFIER_TRANSPARENT_ALIAS(NODE) \ @@ -5441,9 +5446,9 @@ target_opts_for_fn (const_tree fndecl) /* For anonymous aggregate types, we need some sort of name to hold on to. In practice, this should not appear, but it should - not be harmful if it does. */ -extern const char *anon_aggrname_format(); -extern bool anon_aggrname_p (const_tree); + not be harmful if it does. Identifiers returned will be + IDENTIFIER_ANON_P. */ +extern tree make_anon_name (); /* The tree and const_tree overload templates. */ namespace wi |