gcc 4.3.1 gets an ICE on the program below. I didn't try 4.3.2 or 4.4.0. $ cat t.C && gcc t.C #include <stdarg.h> #include <string.h>
const char* foobar (void*) { return 0; } template <class> struct S { static const char* foo () { return 0; } }; template <class T, int N> struct S<T [N]> { static const char* foo () { return foobar (T ()); } }; int main () { va_list va; memset (&va, 0, sizeof va); S<va_list>::foo (); } t.C: In static member function 'static const char* S<T [N]>::foo() [with T = __va_list_tag, int N = 1]': t.C:14: instantiated from here t.C:8: internal compiler error: in build_special_member_call, at cp/call.c:5325 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE on va_arg and template deduction Product: gcc Version: 4.3.1 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=37404