To demonstrate my point: add /* { dg-options "-ffinite-math-only -fno-math-errno" } */ to c1builin-integral.cc
and watch the test pass (since now we are using the flags across all compilations). Or similarly, remove the same dg-options entry from c0builtin-integral.h and watch the test pass (since now we are using no additional flags across all compilations) Gab On Mon, Jul 18, 2011 at 5:29 PM, Gabriel Charette <gch...@google.com> wrote: > Hey guys, > > so the asm diff we are seeing in c1builtin-integral is not something > we are not streaming out, or any other logic being wrong in the pph. > > The problem is: we define a dg-options entry in the header file which > tells deja-gnu to add flags to the compilation (so far so good...) > > The problem is: deja-gnu only sees those options when doing the pph > compile (as deja-gnu takes its options by reading the file compiled it > seems, not the full translation unit). > > In our case compiling the pph with -ffinite-math-only -fno-math-errno. > > When compiling the C file, those flags are no longer there (deja-gnu > doesn't pass them in as they are not present in the C file) > > Furthermore, when doing the non-pph compile, those flags aren't passed either. > > It turns out, if we either: > 1) Do the pph compile without the flags, and then the pph and non-pph > compile: there is no asm diff > 2) Do the pph compile with the flags, but also pass the flags when > doing the C file compile (with and without pph): there is also no asm > diff! > > So the question is: how do we want to treat flags passed to the pph > compile? I don't think it makes sense to use these flags in the rest > of the compilation, but not doing so also results in the flag only > being use for half of the compilation... > Maybe we should save the flags used as part of the pph compile and > invalidate the pph file if we don't get the same set of flags when > doing the real compilation (as we do, i think, with the > identifier(macro) context present when compiling a given pph file)?? > > Gab >