diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-09-25 10:24:09 -0700 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-09-25 10:28:19 -0700 |
commit | 00aaae03db249e61dde41facbf373c3fcde38154 (patch) | |
tree | a3ac3986e692c4fd88467b1a50a8947d0da4243b /gcc/objcp | |
parent | 0d8f3f612d662ea3007c184a11ea5eb7d58760e7 (diff) | |
download | gcc-00aaae03db249e61dde41facbf373c3fcde38154.zip gcc-00aaae03db249e61dde41facbf373c3fcde38154.tar.gz gcc-00aaae03db249e61dde41facbf373c3fcde38154.tar.bz2 |
c++: Replace tag_scope with TAG_how
I always found tag_scope confusing, as it is not a scope, but a
direction of how to lookup or insert an elaborated type tag. This
replaces it with a enum class TAG_how. I also add a new value,
HIDDEN_FRIEND, to distinguish the two cases of innermost-non-class
insertion that we currently conflate. Also renamed
'lookup_type_scope' to 'lookup_elaborated_type', because again, we're
not providing a scope to lookup in.
gcc/cp/
* name-lookup.h (enum tag_scope): Replace with ...
(enum class TAG_how): ... this. Add HIDDEN_FRIEND value.
(lookup_type_scope): Replace with ...
(lookup_elaborated_type): ... this.
(pushtag): Use TAG_how, not tag_scope.
* cp-tree.h (xref_tag): Parameter is TAG_how, not tag_scope.
* decl.c (lookup_and_check_tag): Likewise. Adjust.
(xref_tag_1, xref_tag): Likewise. adjust.
(start_enum): Adjust lookup_and_check_tag call.
* name-lookup.c (lookup_type_scope_1): Rename to ...
(lookup_elaborated_type_1) ... here. Use TAG_how, not tag_scope.
(lookup_type_scope): Rename to ...
(lookup_elaborated_type): ... here. Use TAG_how, not tag_scope.
(do_pushtag): Use TAG_how, not tag_scope. Adjust.
(pushtag): Likewise.
* parser.c (cp_parser_elaborated_type_specifier): Adjust.
(cp_parser_class_head): Likewise.
gcc/objcp/
* objcp-decl.c (objcp_start_struct): Use TAG_how not tag_scope.
(objcp_xref_tag): Likewise.
Diffstat (limited to 'gcc/objcp')
-rw-r--r-- | gcc/objcp/objcp-decl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/objcp/objcp-decl.c b/gcc/objcp/objcp-decl.c index 087b5d5..c6c4ee5 100644 --- a/gcc/objcp/objcp-decl.c +++ b/gcc/objcp/objcp-decl.c @@ -41,7 +41,7 @@ objcp_start_struct (location_t loc ATTRIBUTE_UNUSED, if (!name) name = make_anon_name (); - s = xref_tag (record_type, name, ts_global); + s = xref_tag (record_type, name, TAG_how::GLOBAL); CLASSTYPE_DECLARED_CLASS (s) = 0; /* this is a 'struct', not a 'class'. */ xref_basetypes (s, NULL_TREE); /* no base classes here! */ @@ -84,7 +84,7 @@ objcp_finish_function (void) tree objcp_xref_tag (enum tree_code code ATTRIBUTE_UNUSED, tree name) { - return xref_tag (record_type, name, ts_global); + return xref_tag (record_type, name, TAG_how::GLOBAL); } int |