[cfe-commits] r166361 - in /cfe/trunk: lib/CodeGen/CGExpr.cpp lib/Sema/SemaExpr.cpp test/CodeGenCXX/const-init-cxx11.cpp test/CodeGenCXX/for-range.cpp test/CodeGenCXX/lambda-expressions.cpp test/SemaCXX/lambda-expressions.cpp
Argyrios Kyrtzidis
kyrtzidis at apple.com
Fri Oct 26 14:19:12 PDT 2012
On Oct 26, 2012, at 2:16 PM, Nico Weber <thakis at chromium.org> wrote:
> FWIW, I found -Wunneeded-internal-declaration fairly confusing. I
> tried to turn it on for chromium, and it fired in a few instances
> where the function it warned about was used for something and couldn't
> be easily removed.
Could you be more specific ? It's not clear if you are talking about a false positive or something else.
-Argyrios
>
> Nico
>
> On Fri, Oct 26, 2012 at 1:54 PM, Argyrios Kyrtzidis <kyrtzidis at apple.com> wrote:
>> On Oct 26, 2012, at 1:35 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>>
>>> Argyrios: It looks like you added this warning in r129794. Can you
>>> comment on what it's intended to detect?
>>
>> variables/functions with internal linkage that are not used from the codegen perspective.
>> This differs from -Wunused which will consider a 'use' even in an unevaluated context.
>> For example:
>>
>> static void foo() { }
>>
>> this gives:
>> warning: unused function 'foo' [-Wunused-function]
>>
>> static void foo() { }
>> template <typename T>
>> void goo() {
>> foo();
>> }
>>
>> this gives:
>> warning: function 'foo' is not needed and will not be emitted [-Wunneeded-internal-declaration]
>>
>> -Argyrios
>>
>>>
>>> On Fri, Oct 26, 2012 at 9:52 AM, Craig Topper <craig.topper at gmail.com> wrote:
>>>> No its used right here in the same file. It only warns on C++11 enabled
>>>> builds.
>>>>
>>>> virtual void getAnalysisUsage(AnalysisUsage &AU) const {
>>>> AU.setPreservesAll();
>>>> AU.addRequiredID(PreVerifyID);
>>>>
>>>>
>>>> On Fri, Oct 26, 2012 at 9:41 AM, Matthieu Monrocq
>>>> <matthieu.monrocq at gmail.com> wrote:
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Oct 26, 2012 at 8:51 AM, Richard Smith <richard at metafoo.co.uk>
>>>>> wrote:
>>>>>>
>>>>>> On Thu, Oct 25, 2012 at 10:48 PM, Craig Topper <craig.topper at gmail.com>
>>>>>> wrote:
>>>>>>> I think this change broke bootstrap builds with C++11 and -Werror
>>>>>>> enabled.
>>>>>>>
>>>>>>> lib/VMCore/Verifier.cpp:116:14: error: variable 'PreVerifyID' is not
>>>>>>> needed
>>>>>>> and will not be emitted [-Werror,-Wunneeded-internal-declaration]
>>>>>>> static char &PreVerifyID = PreVerifier::ID;
>>>>>>
>>>>>> Yes, I think this change probably caused that. I'm unclear on what the
>>>>>> purpose of that warning is: it appears to be warning on variables
>>>>>> which are referenced but not odr-used, which seems like a pretty
>>>>>> questionable thing to warn on. It'd be easy enough to fix this by
>>>>>> teaching Sema::ShouldWarnIfUnusedFileScopedDecl to ignore references
>>>>>> (along with its existing check for const variables), but I'm not sure
>>>>>> that's the right fix, since I'm not really sure what the intent is
>>>>>> here.
>>>>>
>>>>>
>>>>>
>>>>> Is not PreVerifyID just an unused variable ? (not the difference with
>>>>> PreVerifier::ID)
>>>>>
>>>>> -- Matthieu
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> ~Craig
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list