diff options
| author | dgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-29 14:11:28 +0000 |
|---|---|---|
| committer | dgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-29 14:11:28 +0000 |
| commit | a024c245d56bfab96b66ac194c638f9318bdbae7 (patch) | |
| tree | 71b8132557308fe006fa303079733b84731aa6bf | |
| parent | 2d00dd1a4a5ef157c5d0b5c507f4c9ae842705f0 (diff) | |
| download | ppe42-gcc-a024c245d56bfab96b66ac194c638f9318bdbae7.tar.gz ppe42-gcc-a024c245d56bfab96b66ac194c638f9318bdbae7.zip | |
2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
PR tree-optimization/30666
* tree.c (build_complex_type): When creating type names for DWARF2
debug info, create TYPE_DECLs for TYPE_NAME instead of
IDENTIFIER_NODEs.
(build_common_tree_nodes_2): Use build_complex_type when building
predefined complex types, to preserve canonical types.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123330 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 9 | ||||
| -rw-r--r-- | gcc/tree.c | 21 |
2 files changed, 14 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ed51488e46a..d6c580aa317 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-03-29 Douglas Gregor <doug.gregor@gmail.com> + + PR tree-optimization/30666 + * tree.c (build_complex_type): When creating type names for DWARF2 + debug info, create TYPE_DECLs for TYPE_NAME instead of + IDENTIFIER_NODEs. + (build_common_tree_nodes_2): Use build_complex_type when building + predefined complex types, to preserve canonical types. + 2007-03-29 Steven Bosscher <steven@gcc.gnu.org> * ifcvt.c (struct noce_if_info): Add then_else_reversed field. diff --git a/gcc/tree.c b/gcc/tree.c index c0cd2ae2ba5..0ea18b2f700 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -5826,7 +5826,7 @@ build_complex_type (tree component_type) name = 0; if (name != 0) - TYPE_NAME (t) = get_identifier (name); + TYPE_NAME (t) = build_decl (TYPE_DECL, get_identifier (name), t); } return build_qualified_type (t, TYPE_QUALS (component_type)); @@ -7004,21 +7004,10 @@ build_common_tree_nodes_2 (int short_double) TYPE_MODE (dfloat128_type_node) = TDmode; dfloat128_ptr_type_node = build_pointer_type (dfloat128_type_node); - complex_integer_type_node = make_node (COMPLEX_TYPE); - TREE_TYPE (complex_integer_type_node) = integer_type_node; - layout_type (complex_integer_type_node); - - complex_float_type_node = make_node (COMPLEX_TYPE); - TREE_TYPE (complex_float_type_node) = float_type_node; - layout_type (complex_float_type_node); - - complex_double_type_node = make_node (COMPLEX_TYPE); - TREE_TYPE (complex_double_type_node) = double_type_node; - layout_type (complex_double_type_node); - - complex_long_double_type_node = make_node (COMPLEX_TYPE); - TREE_TYPE (complex_long_double_type_node) = long_double_type_node; - layout_type (complex_long_double_type_node); + complex_integer_type_node = build_complex_type (integer_type_node); + complex_float_type_node = build_complex_type (float_type_node); + complex_double_type_node = build_complex_type (double_type_node); + complex_long_double_type_node = build_complex_type (long_double_type_node); { tree t = targetm.build_builtin_va_list (); |

