C++ warnings vs. errors

Jonathan Wakely jwakely.gcc@gmail.com
Thu Jun 19 23:47:00 GMT 2008


Thanks for the review, here's another patch ...

2008/6/18 Mark Mitchell:
>
>> * Should it really be a hard error for a class to declare itself as a
>> friend? I don't think it's expressly forbidden
>> e.g. class A { friend class A; };
>> I changed this to a permerror, restoring the old  behaviour.
>
> I think this should just be a warning.  I can't find anything in the WP that
> says this is invalid.  (That's why I try to cite the WP when making changes
> -- so that we can go back and check later!)  Please change it to a warning.

Done, plain old warning now.
Declaring a member function a friend of its own class is still a
permerror, which is consistent with comeau.

>> * I don't think the pedwarn in joust() in cp/call.c should be a
>> permerror, is this a GNU extension?
>>          if (warn)
>>            {
>>              pedwarn ("\
>> ISO C++ says that these are ambiguous, even \
>> though the worst conversion for the first is better than \
>> the worst conversion for the second:");
>>              print_z_candidate (_("candidate 1:"), w);
>>              print_z_candidate (_("candidate 2:"), l);
>>            }
>
> Yes, that is a historical GNU extension.  I think this should just be a
> warning, given that the whole section of code is guarded with !pedantic.

Done, plain old warning.

>> * I don't know if these in cp/typeck.c should be permerrors, DTRT
>> implies not, but should tf_error be changed to tf_warning?
>
> I think "DTRT" here means "do what whoever wrote this code thinks the
> standard should say" not "do what the standard says".  Please make these
> permerrors.

Done.

tested linux/x86-64

Shall I commit this?

Jon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ChangeLog
Type: application/octet-stream
Size: 1547 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20080619/c5597d34/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: permerrors-2.patch
Type: application/octet-stream
Size: 33287 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20080619/c5597d34/attachment-0001.obj>


More information about the Gcc mailing list