http://llvm.org/bugs/show_bug.cgi?id=4287
Summary: Varargs + K&R doesn't work nicely Product: clang Version: unspecified Platform: PC OS/Version: FreeBSD Status: NEW Severity: normal Priority: P2 Component: Semantic Analyzer AssignedTo: unassignedclangb...@nondot.org ReportedBy: e...@80386.nl CC: llvmbugs@cs.uiuc.edu Blocks: 3696 The following code doesn't build with Clang, while it does build when using GCC. This causes some build failures when building packages for FreeBSD: #include <stdarg.h> char *foo = "test"; #if defined(__STDC__) && __STDC__ int test(char*,...); #endif int test(fmt) char*fmt; { va_list ap; char*a; int x; va_start(ap,fmt); a=va_arg(ap,char*); x=(a!=foo); va_end(ap); return x; } int main(argc,argv) int argc;char**argv; { exit(test("",foo)); } Error log: conftest.c:7:5: error: conflicting types for 'test' int test(fmt) ^ conftest.c:4:5: note: previous declaration is here int test(char*,...); ^ conftest.c:14:2: error: 'va_start' used in function with fixed args va_start(ap,fmt); ^ /usr/include/stdarg.h:45:2: note: instantiated from: __builtin_va_start((ap), (last)) ^ 3 diagnostics generated. -- Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ LLVMbugs mailing list LLVMbugs@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs