diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-14 11:26:13 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-14 11:26:13 +0000 |
commit | ef61eb6071c93d36b434df32c83505b95c90201d (patch) | |
tree | f0372c6e50786fd0e4975b91533b4caa16211ca3 | |
parent | d7288dfb9fac1451adede96e855c8fde9ee5f2c1 (diff) | |
download | gcc-ef61eb6071c93d36b434df32c83505b95c90201d.zip gcc-ef61eb6071c93d36b434df32c83505b95c90201d.tar.gz gcc-ef61eb6071c93d36b434df32c83505b95c90201d.tar.bz2 |
tree.c (free_lang_data_in_type): Do not clear fields dependent on debuginfo level setting.
2011-12-14 Richard Guenther <rguenther@suse.de>
* tree.c (free_lang_data_in_type): Do not clear fields
dependent on debuginfo level setting.
(find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
* tree.h (TYPE_STUB_DECL): Properly check that we access
a type.
From-SVN: r182329
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/tree.c | 5 | ||||
-rw-r--r-- | gcc/tree.h | 2 |
3 files changed, 10 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c9e927a..b763bbe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2011-12-14 Richard Guenther <rguenther@suse.de> + + * tree.c (free_lang_data_in_type): Do not clear fields + dependent on debuginfo level setting. + (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN. + * tree.h (TYPE_STUB_DECL): Properly check that we access + a type. + 2011-12-14 Georg-Johann Lay <avr@gjlay.de> PR target/50931 @@ -4521,9 +4521,6 @@ free_lang_data_in_type (tree type) && TREE_CODE (TYPE_CONTEXT (type)) != FUNCTION_DECL && TREE_CODE (TYPE_CONTEXT (type)) != NAMESPACE_DECL)) TYPE_CONTEXT (type) = NULL_TREE; - - if (debug_info_level < DINFO_LEVEL_TERSE) - TYPE_STUB_DECL (type) = NULL_TREE; } @@ -4881,7 +4878,7 @@ find_decls_types_r (tree *tp, int *ws, void *data) } } - fld_worklist_push (TREE_CHAIN (t), fld); + fld_worklist_push (TYPE_STUB_DECL (t), fld); *ws = 0; } else if (TREE_CODE (t) == BLOCK) @@ -2247,7 +2247,7 @@ extern enum machine_mode vector_type_mode (const_tree); to point back at the TYPE_DECL node. This allows the debug routines to know that the two nodes represent the same type, so that we only get one debug info record for them. */ -#define TYPE_STUB_DECL(NODE) TREE_CHAIN (NODE) +#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE))) /* In a RECORD_TYPE, UNION_TYPE or QUAL_UNION_TYPE, it means the type has BLKmode only because it lacks the alignment requirement for |