This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cannot pass objects of non-POD type


On Wed, Oct 24, 2007 at 12:15:03PM -0700, Andrew Pinski wrote:
> On 10/24/07, John Gateley <gateley@jriver.com> wrote:
> > I don't think it is undefined code. The class has no virtual functions,
> > and the variable argument function doesn't need to know the full size
> > of the struct, since it is not using it as a String object, it is using
> > it as a char * pointer (which is what gets passed).
> 
> Does not matter if the class has no virtual functions or not.  The
> class is a non POD.

Andrew, I think you're being overly pedantic.  While it is true that
the standard permits what I will call "trivial non-PODs" to be laid
out differently from PODs, there's another spec we conform to as well,
the C++ ABI, and that spec specifies in this case that the layout is
exactly the same as a POD.

So GCC could support this case and treat the warning as a pedwarn.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]