This is the mail archive of the gcc-patches@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: [PATCH] Add option to control warnings added through attribure "warning"


On 10/15/18 9:21 AM, Nikolai Merinov wrote:
> Hi Martin,
> 
> On 10/15/18 6:20 PM, Martin Sebor wrote:
>> On 10/15/2018 01:55 AM, Nikolai Merinov wrote:
>>> Hi Martin,
>>>
>>> On 10/12/18 9:58 PM, Martin Sebor wrote:
>>>> On 10/12/2018 04:14 AM, Nikolai Merinov wrote:
>>>>> Hello,
>>>>>
>>>>> In https://gcc.gnu.org/ml/gcc-patches/2018-09/msg01795.html mail I
>>>>> suggested patch to have ability to control behavior of
>>>>> "__attribute__((warning))" in case when option "-Werror" enabled.
>>>>> Usage
>>>>> example:
>>>>>
>>>>>> #include <string.h>
>>>>>> int a() __attribute__((warning("Warning: `a' was used")));
>>>>>> int a() { return 1; }
>>>>>> int main () { return a(); }
>>>>>
>>>>>> $ gcc -Werror test.c
>>>>>> test.c: In function ‘main’:
>>>>>> test.c:4:22: error: call to ‘a’ declared with attribute warning:
>>>>>> Warning: `a' was used [-Werror]
>>>>>>  int main () { return a(); }
>>>>>>                       ^
>>>>>> cc1: all warnings being treated as errors
>>>>>> $ gcc -Werror -Wno-error=warning-attribute test.c
>>>>>> test.c: In function ‘main’:
>>>>>> test.c:4:22: warning: call to ‘a’ declared with attribute warning:
>>>>>> Warning: `a' was used
>>>>>>  int main () { return a(); }
>>>>>>                       ^
>>>>> Can you provide any feedback on suggested changes?
>>>>
>>>> It seems like a useful feature and in line with the philosophy
>>>> that distinct warnings should be controlled by their own options.
>>>>
>>>> I would only suggest to consider changing the name to
>>>> -Wattribute-warning, because it applies specifically to that
>>>> attribute (as opposed to warnings about attributes in general).
>>>>
>>>> There are many attributes in GCC and diagnosing problems that
>>>> are unique to each, under the same -Wattributes option, is
>>>> becoming too coarse and overly limiting.  To make it more
>>>> flexible, I expect new options will need to be introduced,
>>>> such as -Wattribute-alias (to control aspects of the alias
>>>> attribute and others related to it), or -Wattribute-const
>>>> (to control diagnostics about functions declared with
>>>> attribute const that violate the attribute's constraints).
>>>>
>>>> An alternative might be to introduce a single -Wattribute=
>>>> <attribute-list> option where the <attribute-list> gives
>>>> the names of all the distinct attributes whose unique
>>>> diagnostics one might need to control.
>>>>
>>>> Martin
>>>
>>> Currently there is several styles already in use:
>>>
>>> -Wattribute-alias where "attribute" word used as prefix for name of
>>> attribute,
>>> -Wsuggest-attribute=[pure|const|noreturn|format|malloc] where name of
>>> attribute passed as possible argument,
>>> -Wmissing-format-attribute where "attribute" word used as suffix,
>>> -Wdeprecated-declarations where "attribute" word not used at all even
>>> if this warning option was created especially for "deprecated"
>>> attribute.
>>>
>>> I changed name to "-Wattribute-warning" as you suggested, but
>>> unifying style for all attribute related warning looks like separate
>>> activity. Please check new patch in attachments.
>>>
>>
>> Thanks for survey!  I agree that making the existing options
>> consistent (if that's what we want) should be done separately.
>>
>> Martin
>>
>> PS It doesn't look like your latest attachments made it to
>> the list.
>>
> Thank you for mentioning. There was my mistake. Now it's attached
>>
>>> Updated changelog:
>>>
>>> gcc/Changelog
>>>
>>> 2018-10-14  Nikolai Merinov <n.merinov@inango-systems.com>
>>>
>>>          * gcc/common.opt: Add -Wattribute-warning.
>>>          * gcc/doc/invoke.texi: Add documentation for
>>> -Wno-attribute-warning.
>>>          * gcc/testsuite/gcc.dg/Wno-attribute-warning.c: New test.
>>>          * gcc/expr.c (expand_expr_real_1): Add new attribute to
>>> warning_at
>>>          call to allow user configure behavior of "warning" attribute
I split up the ChangeLog and fixed a very minor whitespace issue in the
docs and installed the patch.

I went round and round over whether or not to change the doc text.  It
discusses the attribute and the warning and it's easy to mix up the two.
 But ultimately I decided not to change it.

Thanks and sorry for the long delays.

Jeff
> 


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