diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-11-22 22:45:27 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-11-22 22:45:27 +0100 |
commit | bdaf8be1b2e3514b8bbcdd1042136e7d91b3c3f3 (patch) | |
tree | 45bcd47159e0eaa0651fa0f09f2a27ff62f35a14 /gcc/c/c-decl.c | |
parent | df418f1d3cba53a4d3d20c2f640a250dd4c1bfa3 (diff) | |
download | gcc-bdaf8be1b2e3514b8bbcdd1042136e7d91b3c3f3.zip gcc-bdaf8be1b2e3514b8bbcdd1042136e7d91b3c3f3.tar.gz gcc-bdaf8be1b2e3514b8bbcdd1042136e7d91b3c3f3.tar.bz2 |
re PR c/90677 (gcc-9.1.0 fails to build __gcc_diag__ souce: error: 'cgraph_node' is not defined as a type)
PR c/90677
* c-common.h (identifier_global_tag): Declare.
* c-format.c (get_pointer_to_named_type): Renamed to ...
(get_named_type): ... this. Use identifier_global_tag instead of
identifier_global_value, handle the return value being a TYPE_P.
(init_dynamic_diag_info): Adjust get_pointer_to_named_type callers
to call get_named_type instead. Formatting fixes.
c/
* c-decl.c (identifier_global_tag): Define.
cp/
* cp-objcp-common.c (identifier_global_tag): Define.
testsuite/
* c-c++-common/pr90677.c: New test.
From-SVN: r278634
Diffstat (limited to 'gcc/c/c-decl.c')
-rw-r--r-- | gcc/c/c-decl.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index caa9c85..7fd3cc2 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -10168,6 +10168,20 @@ identifier_global_value (tree t) return NULL_TREE; } +/* Return the global value of tag T as a symbol. */ + +tree +identifier_global_tag (tree t) +{ + struct c_binding *b; + + for (b = I_TAG_BINDING (t); b; b = b->shadowed) + if (B_IN_FILE_SCOPE (b) || B_IN_EXTERNAL_SCOPE (b)) + return b->decl; + + return NULL_TREE; +} + /* Returns true if NAME refers to a built-in function or function-like operator. */ |