On Tue, 23 May 2017, Matthias Kaehlcke wrote: > > diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h > > index de179993e039..e1895ce6fa1b 100644 > > --- a/include/linux/compiler-clang.h > > +++ b/include/linux/compiler-clang.h > > @@ -15,3 +15,8 @@ > > * with any version that can compile the kernel > > */ > > #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) > > + > > +#ifdef inline > > +#undef inline > > +#define inline __attribute__((unused)) > > +#endif > > Thanks for the suggestion! > > Nothing breaks and the warnings are silenced. It seems we could use > this if there is a stong opposition against having warnings on unused > static inline functions in .c files. > It would be slightly different, it would be: #define inline inline __attribute__((unused)) to still inline the functions, I was just seeing if there was anything else that clang was warning about that was unrelated to a function's inlining. > Still I am not convinced that gcc's behavior is preferable in this > case. True, it saves us from adding a bunch of __maybe_unused or > #ifdefs, on the other hand the warning is a useful tool to spot truly > unused code. So far about 50% of the warnings I looked into fall into > this category. > I think gcc's behavior is a result of how it does preprocessing and is a clearly defined and long-standing semantic given in the gcc manual regarding -Wunused-function. #define IS_PAGE_ALIGNED(__size) (!(__size & ((size_t)PAGE_SIZE - 1))) static inline int is_page_aligned(size_t size) { return !(size & ((size_t)PAGE_SIZE - 1)); } Gcc will not warn about either of these being unused, regardless of -Wall, -Wunused-function, or -pedantic. Clang, correct me if I'm wrong, will only warn about is_page_aligned(). So the argument could be made that one of the additional benefits of static inline functions is that a subset of compilers, heavily in the minority, will detect whether it's unused and we'll get patches that remove them. Functionally, it would only result in LOC reduction. But, isn't adding #ifdef's to silence the warning just adding more LOC? I have no preference either way, I think it would be up to the person who is maintaining the code and has to deal with the patches. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>