From 9c88061824631d4fc318c57b72cfd1913007d50c Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Tue, 14 Oct 2008 15:03:51 +0000 Subject: [PATCH] re PR c++/37553 (ICE in build_c_cast) 2008-10-14 Douglas Gregor PR c++/37553 * tree.c (build_type_attribute_qual_variant): Hash on the unqualified type, and don't overwrite an existing (type_hash_eq): Make the TYPE_NAME of the types significant, to allow distinguishing between wchar_t and its underlying type. This also means that we'll retain a little more typedef information. 2008-10-14 Douglas Gregor PR c++/37553 * g++.dg/ext/alias-canon2.C: New. From-SVN: r141111 --- gcc/ChangeLog | 9 +++++++ gcc/testsuite/ChangeLog | 5 ++++ gcc/testsuite/g++.dg/ext/alias-canon2.C | 36 +++++++++++++++++++++++++ gcc/tree.c | 11 ++++---- 4 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 gcc/testsuite/g++.dg/ext/alias-canon2.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1fa764086228..6bbf5c252f76 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2008-10-14 Douglas Gregor + + PR c++/37553 + * tree.c (build_type_attribute_qual_variant): Hash on the + unqualified type, and don't overwrite an existing + (type_hash_eq): Make the TYPE_NAME of the types significant, to + allow distinguishing between wchar_t and its underlying type. This + also means that we'll retain a little more typedef information. + 2008-10-14 Andrey Belevantsev Dmitry Melnik Dmitry Zhurikhin diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 32773afccda2..e4f3da8c6fed 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-10-14 Douglas Gregor + + PR c++/37553 + * g++.dg/ext/alias-canon2.C: New. + 2008-10-13 Jerry DeLisle type), TYPE_ATTRIBUTES (b->type)) || TYPE_ALIGN (a->type) != TYPE_ALIGN (b->type) - || TYPE_MODE (a->type) != TYPE_MODE (b->type)) + || TYPE_MODE (a->type) != TYPE_MODE (b->type) + || (TREE_CODE (a->type) != COMPLEX_TYPE + && TYPE_NAME (a->type) != TYPE_NAME (b->type))) return 0; switch (TREE_CODE (a->type)) -- 2.47.3