On Mon, Jun 13, 2011 at 4:16 AM, David Majnemer <[email protected]> wrote: > Hi, > > Right now, the code base is correct in saying that many types, like > void, are non-POD when passed in to va_arg. > > While it is true that "struct X" is not a POD type, we do not say why > it is not a POD type. > I think that it would be more clear to say that the type is > incomplete, this had a side effect of making a bit more sense in C99 > mode where non-POD is not really part of the lingo. > > The attached patch should make it a little more clear. It also moves a > preexisting test to a more appropriate location. > > -- > David Majnemer >
After talking some folks in #llvm and thinking about it a bit, I have decided to implement the following: The type must be complete per RequireCompleteType, otherwise issue an error diagnostic The type must be non-abstract per RequireNonAbstractType, otherwise issue an error diagnostic The type must be a POD per isPODType, otherwise issue a warning diagnostic (-Wnon-pod-varargs) I have attached the new patch -- David Majnemer
va_arg_incomplete2.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
