[llvm-dev] MSVC warning noise on "LLVM_ATTRIBUTE_ALWAYS_INLINE inline void foo()"

Aaron Ballman via llvm-dev llvm-dev at lists.llvm.org
Sun Dec 20 14:28:06 PST 2015


On Sun, Dec 20, 2015 at 5:24 PM, Xinliang David Li via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> LLVM_ATTRIBUTE_ALWAYS_INLINE is defined to be __forceinline for MSVC. I
> wonder why you get that warning.

inline and __forceinline don't mix with MSVC -- I believe they may be
modeled with the same attribute under the hood. I'm not certain of the
best way to solve this aside from suggesting to ignore C4141 locally.

~Aaron

>
> David
>
> On Sun, Dec 20, 2015 at 8:18 AM, Johan Engelen via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>>
>> Hi all,
>>   Some functions have "inline" specified twice by use of
>> LLVM_ATTRIBUTE_ALWAYS_INLINE.
>> For example in StringRef.h:
>>   LLVM_ATTRIBUTE_ALWAYS_INLINE
>>   inline bool operator==(StringRef LHS, StringRef RHS);
>>
>> This results in warning noise when compiled with MSVC 2015:
>>   \include\llvm/ADT/StringRef.h(567): warning C4141: 'inline': used more
>> than once
>>   \include\llvm/ADT/StringRef.h(572): warning C4141: 'inline': used more
>> than once
>>   \include\llvm/IR/User.h(43): warning C4141: 'inline': used more than
>> once
>>
>> Thanks very much for a fix.
>> (I hope that simply removing the "inline" after
>> LLVM_ATTRIBUTE_ALWAYS_INLINE is correct)
>>
>> Kind regards,
>>   Johan
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list