On Oct 26, 2012, at 1:35 PM, Richard Smith <[email protected]> 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 <[email protected]> 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
>> <[email protected]> wrote:
>>>
>>>
>>>
>>> On Fri, Oct 26, 2012 at 8:51 AM, Richard Smith <[email protected]>
>>> wrote:
>>>>
>>>> On Thu, Oct 25, 2012 at 10:48 PM, Craig Topper <[email protected]>
>>>> 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
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits