[cfe-commits] r158683 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaExpr.cpp test/Sema/inline.c test/SemaCXX/inline.cpp

Jim Grosbach grosbach at apple.com
Wed Jun 20 14:35:19 PDT 2012


Sounds good. Thanks!

-Jim

On Jun 20, 2012, at 2:34 PM, Jordan Rose <jordan_rose at apple.com> wrote:

> All right, will add another heuristic: if the function being used is also inline this gets downgraded to an Extension, not an ExtWarn.
> 
> (I have already disabled this completely in C++ mode, though.)
> 
> Jordan
> 
> 
> On Jun 20, 2012, at 14:31 , Jim Grosbach <grosbach at apple.com> wrote:
> 
>> I'm seeing many, many warnings compiling LLVM with this warning, in particular from things like the ctype macros (isascii(), isupper(), et. al.). The common theme is static inline functions in headers. Consider:
>> 
>> $ cat fail.h
>> static inline int foo() { return 0; }
>> 
>> class test {
>> public:
>> int blah() const {
>>   return foo();
>> }
>> };
>> $ cat fail.cpp
>> #include "fail.h"
>> $ clang++ fail.cpp -c
>> In file included from fail.cpp:1:
>> ./fail.h:6:12: warning: function 'foo' has internal linkage but is used in an inline method with external linkage [-Winternal-linkage-in-inline]
>>   return foo();
>>          ^
>> ./fail.h:1:19: note: 'foo' declared here
>> static inline int foo() { return 0; }
>>                 ^
>> 1 warning generated.
>> 
>> This strikes me as a false positive.
>> 
>> -Jim
> 




More information about the cfe-commits mailing list