[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-31 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Tue Mar 31 17:35:29 2015
New Revision: 221799

URL: https://gcc.gnu.org/viewcvs?rev=221799root=gccview=rev
Log:
PR c++/65390
* tree.c (build_cplus_array_type): Use dependent_type_p rather than
checking for constness.

* g++.dg/template/pr65390.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/pr65390.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/tree.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-31 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.0

--- Comment #8 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed for GCC 5.


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-16 Thread ktietz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 CC||ktietz at gcc dot gnu.org

--- Comment #4 from Kai Tietz ktietz at gcc dot gnu.org ---
This sample is undefined behavior.  It will use delete on the allocated memory,
and not delete [] as it would need.
Additionally the type 'int [n]' is no valid type for template argument.


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-16 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
Further reduced so it doesn't rely on any C++11 or C++14 features:

templatetypename T struct shared_ptr { };

templatetypename T, typename Arg
shared_ptrT make_shared(Arg) { return shared_ptrT(); }

void f(int n){
  make_sharedint[n](1);
}


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-16 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org ---
Reduced:

templatetypename T struct shared_ptr { };

templatetypename T, typename Arg
shared_ptrT make_shared(Arg) { return {}; }

auto f(int n){
  return make_sharedint[n](1);
}


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-16 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-03-16
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Confirmed.  It appears that 4.9/4.8 ICE too.


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-16 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Might be a dup of PR63584.


[Bug c++/65390] ICE in strip_typedefs, at cp/tree.c:1361

2015-03-16 Thread alserkli at inbox dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65390

--- Comment #3 from Alexander Klimov alserkli at inbox dot ru ---
(In reply to Marek Polacek from comment #2)
 Might be a dup of PR63584.

PR63584 does not produce ICE in 5.0