The following crashes g++-4.1.1:
template < typename T >
void boom ( T & a ) {
T tmp = a;
}
template < typename T >
void null_op ( void ) {}
typedef void(&F)( void );
int main ( void ) {
F f = &null_op<int>;
boom( f );
}
gcc> /added/pkg/gcc-4.1.1/usr/bin/g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.1.1/configure --prefix=/added/pkg/gcc-4.1.1/usr
--with-ld=/usr/i686-pc-linux-gnu/binutils-bin/2.16.1/ld --enable-debug
--enable-libstdcxx-debug --enable-concept-checks
--with-as=/usr/i686-pc-linux-gnu/binutils-bin/2.16.1/as
--host=i686-pc-linux-gnu : (reconfigured) ../gcc-4.1.1/configure
--prefix=/added/pkg/gcc-4.1.1/usr
--with-ld=/usr/i686-pc-linux-gnu/binutils-bin/2.16.1/ld --enable-debug
--enable-libstdcxx-debug --enable-concept-checks
--with-as=/usr/i686-pc-linux-gnu/binutils-bin/2.16.1/as
--host=i686-pc-linux-gnu
Thread model: posix
gcc version 4.1.1
My g++-3.4.6 (gentoo) does not crash on the code.
Best
Kai-Uwe Bux
--
Summary: ICE on invalid code in digest_init at cp/typeck2.c:709
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jkherciueh at gmx dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30046