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

Reply via email to