diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2011-05-26 17:38:51 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2011-05-26 17:38:51 +0000 |
commit | 92e948a836d98e98a1721008795dfddbb47828a6 (patch) | |
tree | d221c28a4588d4ee669bca17061040874f839eab /gcc/tree.c | |
parent | d74be3171290547f3311f959351e0c3afe7dcd21 (diff) | |
download | gcc-92e948a836d98e98a1721008795dfddbb47828a6.zip gcc-92e948a836d98e98a1721008795dfddbb47828a6.tar.gz gcc-92e948a836d98e98a1721008795dfddbb47828a6.tar.bz2 |
make TS_BLOCK a substructure of TS_BASE
make TS_BLOCK a substructure of TS_BASE
gcc/
* tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
TS_BASE instead of TS_COMMON.
(find_decls_types_r): Check for TS_TYPED structure before looking at
TREE_TYPE.
* tree.h (struct tree_block): Inherit from tree_base, not tree_common.
Add chain field.
(BLOCK_CHAIN): Use new chain field.
gcc/c-family/
* c-common.c (warning_candidate_p): Check for BLOCKs.
gcc/java/
* decl.c (poplevel): Don't access TREE_TYPE of BLOCKs.
* expr.c (build_jni_stub): Likewise.
From-SVN: r174300
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -368,6 +368,7 @@ initialize_tree_contains_struct (void) switch (ts_code) { case TS_TYPED: + case TS_BLOCK: MARK_TS_BASE (code); break; @@ -389,7 +390,6 @@ initialize_tree_contains_struct (void) case TS_TYPE_COMMON: case TS_LIST: case TS_VEC: - case TS_BLOCK: case TS_BINFO: case TS_STATEMENT_LIST: case TS_OMP_CLAUSE: @@ -4892,7 +4892,8 @@ find_decls_types_r (tree *tp, int *ws, void *data) fld_worklist_push (BLOCK_ABSTRACT_ORIGIN (t), fld); } - if (TREE_CODE (t) != IDENTIFIER_NODE) + if (TREE_CODE (t) != IDENTIFIER_NODE + && CODE_CONTAINS_STRUCT (TREE_CODE (t), TS_TYPED)) fld_worklist_push (TREE_TYPE (t), fld); return NULL_TREE; |