diff options
author | Jason Merrill <jason@redhat.com> | 2012-12-14 23:02:52 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2012-12-14 23:02:52 -0500 |
commit | 1c9597213362d8fc5fe58016a5790bd331c1c997 (patch) | |
tree | d2a31a30cbd47a5db1dd8291dfe7cd75385e1a34 /gcc/cp | |
parent | 71d1d77cfbcad4c688086e8089d715c2743a260d (diff) | |
download | gcc-1c9597213362d8fc5fe58016a5790bd331c1c997.zip gcc-1c9597213362d8fc5fe58016a5790bd331c1c997.tar.gz gcc-1c9597213362d8fc5fe58016a5790bd331c1c997.tar.bz2 |
re PR c++/55685 (ICE: canonical types differ for identical types)
PR c++/55685
* pt.c (tsubst_copy_and_build): Don't use SIZEOF_EXPR_TYPE_P in
templates.
From-SVN: r194517
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ee9bf77..83d3c63 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2012-12-14 Jason Merrill <jason@redhat.com> + PR c++/55685 + * pt.c (tsubst_copy_and_build): Don't use SIZEOF_EXPR_TYPE_P in + templates. + PR c++/42315 * decl.c (maybe_deduce_size_from_array_init): Don't change the variable type. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 91450d8..a21522b 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -13563,7 +13563,7 @@ tsubst_copy_and_build (tree t, { if (TREE_CODE (r) != SIZEOF_EXPR || TYPE_P (op1)) { - if (TYPE_P (op1)) + if (!processing_template_decl && TYPE_P (op1)) { r = build_min (SIZEOF_EXPR, size_type_node, build1 (NOP_EXPR, op1, error_mark_node)); |