This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: noise from gcc.dg/torture/fp-convert tests


On Wed, Sep 13, 2006 at 12:44:56AM +0000, Joseph S. Myers wrote:
> On Tue, 12 Sep 2006, Eric Christopher wrote:
> 
> > Joseph S. Myers wrote:
> > > On Tue, 12 Sep 2006, Eric Christopher wrote:
> > > 
> > > > So, these are xfailed, but still produce quite a bit of noise on both
> > > > x86_64-darwin and x86_64-linux since they fail to produce a working
> > > > executable
> > > > and then xfail. Should we move them to skip or link only and xfail them.
> > > > With
> > > > link only they do manage to be quiet in the logs and we'll still notice if
> > > > they start linking correctly and can move them to run then.
> > > > 
> > > > thoughts? pre-approved? :)
> > > 
> > > Add a means to XFAIL the link of an execute test, if such a means doesn't
> > > already exist in the testsuite infrastructure.
> > 
> > As opposed to changing the test to a link, find a way to xfail at the link
> > stage instead of at the run stage?
> 
> Yes.  Some marking so that the compile/link is expected to fail (and so 
> doesn't produce a WARNING) but if it succeeds (XPASS) then the execute 
> test is run.

Eric, Do you mean that they're noisy because of the WARNINGs?  I always
find warnings annoying, perhaps test_summary should filter them out.

A few things about XFAILs:

  - The only way to XFAIL a run test is on the dg-do directive.  If the
    test also needs to specify a list of targets on which to run, that
    must be moved to a dg-skip-if directive, where it can be negated by
    using { ! { targets_to_run } }.

  - dg-xfail-if only applies to the compile/assemble/link, not to the
    execution.  If the compile/assemble/link passes then it is reported
    as an XPASS and the test is run.  This is just what Joseph suggested
    we need a way to do.

When playing with this I discovered something alarming.  This test:

    /* { dg-do run } */
    /* { dg-xfail-if "link fails" { powerpc*-*-linux* } } */
                                                                                
    extern int foo (void);
                                                                                
    int
    main ()
    {
        return foo ();
    }

gets different output on powerpc64-linux depending on whether it's built
with -m32 or -m64:

    elm3b145% /opt/gcc-nightly/trunk/bin/gcc -m32 linkfail.c
    /tmp/ccY3gdwZ.o: In function `main':linkfail.c:(.text+0x14): undefined reference to `foo'
    collect2: ld returned 1 exit status

    elm3b145% /opt/gcc-nightly/trunk/bin/gcc -m64 linkfail.c
    /tmp/ccirb9Cu.o:(.text+0x14): undefined reference to `foo'
    collect2: ld returned 1 exit status

Notice that for -m32, the message from the linker includes "In function
`main':"; this causes prune_gcc_output to remove that line of output,
which results in the failure not being recognized.  I wonder how many
targets this affects, and how many link failures are not recognized
because of it.

Janis


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]