r208345 - Remove -Wnon-modular-include

Richard Smith richard at metafoo.co.uk
Thu May 8 16:39:33 PDT 2014


On Thu, May 8, 2014 at 4:28 PM, Argyrios Kyrtzidis <akyrtzi at gmail.com>wrote:

>
> On May 8, 2014, at 4:23 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>
> On Thu, May 8, 2014 at 4:21 PM, Argyrios Kyrtzidis <akyrtzi at gmail.com>
> wrote:
>
>> Hi Richard,
>>
>> On May 8, 2014, at 1:27 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>>
>> On Thu, May 8, 2014 at 1:20 PM, Richard Smith <richard at metafoo.co.uk>
>> wrote:
>>
>>> On Thu, May 8, 2014 at 11:09 AM, Ben Langmuir <blangmuir at apple.com>
>>> wrote:
>>>
>>>> Author: benlangmuir
>>>> Date: Thu May  8 13:09:29 2014
>>>> New Revision: 208345
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=208345&view=rev
>>>> Log:
>>>> Remove -Wnon-modular-include
>>>>
>>>> But keep -Wnon-modular-include-in-[framework-]module
>>>>
>>>> This warning is too noisy and doesn't really indicate a problem for most
>>>> people.  Even though it would only really affect people using
>>>> -Weverything, that seems bad so remove it.
>>>>
>>>
>>> Wait a second, we were planning on using this to replace
>>> -fmodules-strict-decluse. People using -Weverything need to use -Wno-foo
>>> for the warnings they don't want; that's the cost of using that option.
>>>
>>
>> From when -Weverything was added:
>>
>> Eli Friedman wrote:
>> > This seems like a bad idea: people will start using it, then complain
>> > whenever we add a new warning which isn't generically applicable
>> > (suppose we add an opt-in warning for C-style casts in C++, for
>> > example).  We already have -Wextra for people who want lots of>
>> warnings.
>>
>> Ted Kremenek responded:
>> [...]
>> > -Weverything is not for everybody, and for those that complain about
>> > new warnings we can (and should) tell them to take the opt-in approach
>> > as opposed to the opt-out approach.  I don't see a problem with really
>> > serving both sets of user preferences.
>>
>> => We do not get to use -Weverything as an excuse for removing warning
>> that are noisy and that some users aren't interested in.
>>
>>
>> This is not just noisy,  it has no value IMO. How can we expect an
>> application not to #include something textually and what is the user
>> supposed to do when they see this warning ?
>>
>
> If the application intends to have all of its own headers modularized,
> this warning can be used to check that. If the user sees this warning, and
> they're in that case, they should either add the header to a module or
> explicitly exclude it (if it's supposed to be textually included).
>
>
> I don’t think this is feasible in practice, preprocessor tricks and
> textual includes will not go away, they have real uses.
>

They do, but you can exclude headers meant for textual inclusion just as
easily for an application as for a library.


> The warning is very important for the framework/library author, but I
> don’t think it provides value in practice for the application author.
>

I disagree. An application may want to use modules for itself. They're not
limited to libraries.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140508/017b8d32/attachment.html>


More information about the cfe-commits mailing list