gcc 4.3.2 fails with an ICE on the following ill-formed program. A fairly recent (but not the most recent) version of 4.4 also fails.
$ cat t.C && g++ -dumpversion && g++ t.C -std=c++0x template <class... Types> void f (Types...) { enum { e = sizeof (Types) }; }; int main () { f (0); } 4.3.2 t.C: In function void f(Types ...) [with Types = int]: t.C:9: instantiated from here t.C:4: internal compiler error: in dependent_type_p, at cp/pt.c:15758 Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. Preprocessed source stored into /tmp/cca3TXk5.out file, please attach this to your bugreport. $ g++ -v && g++ t.C Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: /home/sebor/gcc/trunk/configure --prefix=/build/sebor/bin/gcc-4.4.0 --enable-languages=c,c++ --with-mpfr=/usr/local/mpfr-2.3.1 Thread model: posix gcc version 4.4.0 20081105 (experimental) (GCC) t.C:1: warning: variadic templates only available with -std=c++0x or -std=gnu++0x t.C:2: warning: variadic templates only available with -std=c++0x or -std=gnu++0x t.C: In function void f(Types ...) [with Types = int]: t.C:9: instantiated from here t.C:4: internal compiler error: in dependent_type_p, at cp/pt.c:15922 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE on ill-formed sizeof(<parameter-pack>) in variadic template Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sebor at roguewave dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39637