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