On December 7, 2016 6:27:56 PM GMT+01:00, Florian Weimer <f...@deneb.enyo.de> 
wrote:
>* Alexander Monakov:
>
>> On Wed, 7 Dec 2016, Segher Boessenkool wrote:
>>> > For example, this might have impact on writing test for GCC:
>>> > 
>>> > When I am writing a test with noinline + noclone then my
>>> > expectation is that no such propagation happens, because
>>> > otherwise a test might turn trivial...
>>> 
>>> The usual ways to prevent that are to add some volatile, or an
>>> asm("" : "+g"(some_var));   etc.
>>
>> No, that doesn't sound right.  As far as I can tell from looking
>> that the GCC testsuite, the prevailing way is actually the
>> noinline+noclone combo, not the per-argument asms or volatiles.
>
>Agreed, that's what I've been using in the past for glibc test cases.
>
>If that doesn't work, we'll need something else.  Separate compilation
>of test cases just to thwart compiler optimizations is a significant
>burden, and will stop working once we have LTO anyway.
>
>What about making the function definitions weak?  Would that be more
>reliable?

Adding attribute((used)) should do the trick.  It introduces unknown callers 
and thus without cloning disables IPA.

Richard.


Reply via email to