re PR middle-end/30666 (warning: canonical types differ for identical types double __complex__ and double __complex__)
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. From-SVN: r123330
This commit is contained in:
parent
2a42f4aa19
commit
e89886a0ea
|
@ -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>
|
2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
|
||||||
|
|
||||||
* ifcvt.c (struct noce_if_info): Add then_else_reversed field.
|
* ifcvt.c (struct noce_if_info): Add then_else_reversed field.
|
||||||
|
|
21
gcc/tree.c
21
gcc/tree.c
|
@ -5826,7 +5826,7 @@ build_complex_type (tree component_type)
|
||||||
name = 0;
|
name = 0;
|
||||||
|
|
||||||
if (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));
|
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;
|
TYPE_MODE (dfloat128_type_node) = TDmode;
|
||||||
dfloat128_ptr_type_node = build_pointer_type (dfloat128_type_node);
|
dfloat128_ptr_type_node = build_pointer_type (dfloat128_type_node);
|
||||||
|
|
||||||
complex_integer_type_node = make_node (COMPLEX_TYPE);
|
complex_integer_type_node = build_complex_type (integer_type_node);
|
||||||
TREE_TYPE (complex_integer_type_node) = integer_type_node;
|
complex_float_type_node = build_complex_type (float_type_node);
|
||||||
layout_type (complex_integer_type_node);
|
complex_double_type_node = build_complex_type (double_type_node);
|
||||||
|
complex_long_double_type_node = build_complex_type (long_double_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);
|
|
||||||
|
|
||||||
{
|
{
|
||||||
tree t = targetm.build_builtin_va_list ();
|
tree t = targetm.build_builtin_va_list ();
|
||||||
|
|
Loading…
Reference in New Issue