[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0


[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



Marek Polacek mpolacek at gcc dot gnu.org changed:



   What|Removed |Added



 CC||mpolacek at gcc dot gnu.org



--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org 2012-12-14 
09:38:46 UTC ---

Reducing.


[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread mpolacek at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org 2012-12-14 
10:48:40 UTC ---

Reduced.  Hope I haven't turned it into something invalid.



typedef unsigned int size_t;

namespace base

{

  template  size_t Size, size_t ByteAlignment  struct AlignedMemory;

template  typename Type  struct StaticMemorySingletonTraits

  {

  };  



  template  typename Type  base::AlignedMemory  sizeof (Type), 0  

  StaticMemorySingletonTraits  Type ::dead_;

}


[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread jakub at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-14

 CC||jakub at gcc dot gnu.org,

   ||jason at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-14 
10:56:45 UTC ---

Even more simplified and turned (hopefully) into valid testcase:



typedef __SIZE_TYPE__ size_t;

template size_t T, size_t U

struct A;



template typename T struct B

{

  static A sizeof (T), 0 x;

};  



template typename T

A sizeof (T), 0 B T::x;



As expected, started with

http://gcc.gnu.org/viewcvs?root=gccview=revrev=192141

I knew why I was initially proposing the far less risky hack.


[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread jason at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org

   |gnu.org |


[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread jason at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2012-12-15 
04:03:04 UTC ---

Author: jason

Date: Sat Dec 15 04:02:52 2012

New Revision: 194517



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194517

Log:

PR c++/55685

* pt.c (tsubst_copy_and_build): Don't use SIZEOF_EXPR_TYPE_P in

templates.



Added:

trunk/gcc/testsuite/g++.dg/template/sizeof15.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/55685] [4.8 Regression] ICE: canonical types differ for identical types

2012-12-14 Thread jason at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55685



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-12-15 
04:03:45 UTC ---

Fixed.