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

             Bug #: 55323
           Summary: [4.8] ICE in expand_aggr_init_1, at cp/init.c:1718
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: vincenzo.innoce...@cern.ch


there is a syntax error (correctly reported)
the ICE requires the instantiation in a() 

cat varcrash.cc 
#include<algorithm>
struct foo {
  foo(int a, float b);
};

struct bar : public foo {
  template<typename... Args>
  explicit bar(Args&& ... args) : 
    foo(2,std::forward<Args>(args)){}
};


void a() {
  bar b(2,1.);

}
pb-d-128-141-131-26:bugs48 innocent$ c++ -O2 -std=c++11 -c varcrash.cc 
varcrash.cc: In constructor ‘bar::bar(Args&& ...)’:
varcrash.cc:9:35: error: parameter packs not expanded with ‘...’:
     foo(2,std::forward<Args>(args)){}
                                   ^
varcrash.cc:9:35: note:         ‘args’
varcrash.cc:9:35: note:         ‘Args’
varcrash.cc: In instantiation of ‘bar::bar(Args&& ...) [with Args = {int,
double}]’:
varcrash.cc:14:13:   required from here
varcrash.cc:9:35: internal compiler error: in expand_aggr_init_1, at
cp/init.c:1718

varcrash.cc:9:35: internal compiler error: Abort trap: 6
c++: internal compiler error: Abort trap: 6 (program cc1plus)
Abort trap: 6
pb-d-128-141-131-26:bugs48 innocent$ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin12.2.0/4.8.0/lto-wrapper
Target: x86_64-apple-darwin12.2.0
Configured with: ./configure --enable-languages=c,c++,fortran
--disable-multilib --disable-bootstrap --enable-lto -disable-libitm
Thread model: posix
gcc version 4.8.0 20121109 (experimental) [trunk revision 193360] (GCC)

Reply via email to