------- Comment #6 from redi at gcc dot gnu dot org  2009-08-13 12:51 -------
(In reply to comment #3)
> I totally agree with David Faure, please make this warning controllable:
> -Werror=invalid-offsetof
> 
> All other warnings have a type that can be ignored, but when using the
> -fdiagnostics-show-option option to see what the warning type is for this
> non-POD warning I was amazed that it does not have a type.  In the
> gcc/Warnings-Options.html the type is listed as invalid-offsetof

I don't think the docs do say that.  -Winvalid-offsetof may be related to
non-POD types but is distinct from this error.

(In reply to comment #5)
> You have to read the relevant standard text carefully to determine whether 
> it is the program that is undefined, or a particular execution of the 
> program, in this particular instance of undefined behavior.  If the 
> undefinedness is a property of the program (for example, ODR violation), 
> translation may be terminated.  If the undefinedness is a property of a 
> particular execution of the program (for example, signed integer 
> overflow), translation may not be terminated unless all possible 
> executions of the program exhibit that undefined behavior.

Passing a non-POD class type to a variadic function is a property of the
program, detectable at compile time, so I think it would be conforming to make
it an error (please correct me if I've misunderstood.)

I don't feel strongly about making it always an error, but I disagree that this
request is INVALID because the standard forbids making it an error.  It seems
like a valid enhancement to add a new warning option so this users can choose
to make it an error.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19291

Reply via email to