Re: [greybus-dev] [PATCH] staging: greybus: mark PM functions as __maybe_unused

From: Arnd Bergmann
Date: Fri May 19 2017 - 02:58:39 EST


On Fri, May 19, 2017 at 5:40 AM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> On 18-05-17, 16:51, Arnd Bergmann wrote:
>> I find that a lot of users get the #ifdef wrong, either using the wrong
>> macro (CONFIG_PM vs CONFIG_PM_SLEEP) or not using the right
>> set of functions (e.g. calling a function only from the suspend handler).
>>
>> The __maybe_unused annotation avoids both problems and also gives
>> better build time coverage, so that's what I tend to use.
>
> Thanks for the explanation Arnd. I hope these unused routines will not
> be part of the binary that gets generated. Right?

Correct. Ancient compilers (gcc-4.1) had a bug where a function would
still be part of the binary if the only reference to it was from a function
pointer that got dropped through dead code elimination, but that is not
the case here, and those old compilers are not used in real life any more
either.

Arnd