[LLVMbugs] [Bug 6485] New: Diagnostic for using non-POD type with va_start needs improvement

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Mar 3 15:01:53 PST 2010


http://llvm.org/bugs/show_bug.cgi?id=6485

           Summary: Diagnostic for using non-POD type with va_start needs
                    improvement
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: trivial
          Priority: P5
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: rideau3 at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


coppro at overthere:~$ clang -x c++ -
#include <stdarg.h>               

struct foo { virtual void bar(); };

void baz (foo f, ...) {
  va_list v;
  va_start(v, f);
}
// END OF TESTCASE
<stdin>:7:3: error: cannot pass object of non-POD type 'struct foo' through
variadic function; call will abort at runtime [-Wnon-pod-varargs]
  va_start(v, f);
  ^
<stdin>:7:15: note: instantiated from:
  va_start(v, f);
              ^
1 diagnostic generated.
// END OF OUTPUT

GCC does not issue a diagnostic here, however, it is good that clang do so
([support.runtime]/3). The diagnostic could bear improvement, however - prehaps
to something along the lines of "cannot use va_start on a parameter of non-POD
type 'struct foo'".

-- 
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.



More information about the llvm-bugs mailing list