On Wed, Dec 07, 2016 at 06:27:56PM +0100, Florian Weimer wrote:
> >> > 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?
It depends a lot on what you want the test to actually test.
Just sprinkling noinline,noclone everywhere as a poor man's "DWIM"
just does not work.
Segher