Commit 62e3bf54 by Jason Merrill Committed by Jason Merrill

dwarf2out.c (gen_typedef_die): Abort if we get identical TREE_TYPE and…

dwarf2out.c (gen_typedef_die): Abort if we get identical TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.

        * dwarf2out.c (gen_typedef_die): Abort if we get identical
        TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.

        * typeck.c (common_type): If we're just returning one of our
        arguments, don't strip typedef types.

From-SVN: r35297
parent 589ca5cb
2000-07-27 Jason Merrill <jason@redhat.com>
* dwarf2out.c (gen_typedef_die): Abort if we get identical
TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
2000-07-27 RodneyBrown <RodneyBrown@pmsc.com> 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
* expr.h (get_alias_set, lang_get_alias_set): Delete prototypes. * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
......
2000-07-27 Jason Merrill <jason@redhat.com>
* typeck.c (common_type): If we're just returning one of our
arguments, don't strip typedef types.
2000-07-26 Mark Mitchell <mark@codesourcery.com> 2000-07-26 Mark Mitchell <mark@codesourcery.com>
* decl.c (start_cleanup_fn): Mark the function as `inline'. * decl.c (start_cleanup_fn): Mark the function as `inline'.
......
...@@ -521,26 +521,27 @@ composite_pointer_type (t1, t2, arg1, arg2, location) ...@@ -521,26 +521,27 @@ composite_pointer_type (t1, t2, arg1, arg2, location)
converted to integer types. */ converted to integer types. */
tree tree
common_type (t1, t2) common_type (orig_t1, orig_t2)
tree t1, t2; tree orig_t1, orig_t2;
{ {
register enum tree_code code1; register enum tree_code code1;
register enum tree_code code2; register enum tree_code code2;
tree attributes; tree attributes;
tree t1, t2;
/* Save time if the two types are the same. */ /* Save time if the two types are the same. */
if (orig_t1 == orig_t2)
return orig_t1;
t1 = original_type (orig_t1);
t2 = original_type (orig_t2);
if (t1 == t2) if (t1 == t2)
return t1; return orig_t1;
t1 = original_type (t1);
t2 = original_type (t2);
if (t1 == t2)
return t1;
/* If one type is nonsense, use the other. */ /* If one type is nonsense, use the other. */
if (t1 == error_mark_node) if (t1 == error_mark_node)
return t2; return orig_t2;
if (t2 == error_mark_node) if (t2 == error_mark_node)
return t1; return orig_t1;
if ((ARITHMETIC_TYPE_P (t1) || TREE_CODE (t1) == ENUMERAL_TYPE) if ((ARITHMETIC_TYPE_P (t1) || TREE_CODE (t1) == ENUMERAL_TYPE)
&& (ARITHMETIC_TYPE_P (t2) || TREE_CODE (t2) == ENUMERAL_TYPE)) && (ARITHMETIC_TYPE_P (t2) || TREE_CODE (t2) == ENUMERAL_TYPE))
......
...@@ -9276,7 +9276,11 @@ gen_typedef_die (decl, context_die) ...@@ -9276,7 +9276,11 @@ gen_typedef_die (decl, context_die)
if (DECL_ORIGINAL_TYPE (decl)) if (DECL_ORIGINAL_TYPE (decl))
{ {
type = DECL_ORIGINAL_TYPE (decl); type = DECL_ORIGINAL_TYPE (decl);
equate_type_number_to_die (TREE_TYPE (decl), type_die);
if (type == TREE_TYPE (decl))
abort ();
else
equate_type_number_to_die (TREE_TYPE (decl), type_die);
} }
else else
type = TREE_TYPE (decl); type = TREE_TYPE (decl);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment