On Mon, 2024-07-22 at 17:13 +0100, Joern Wolfgang Rennecke wrote:
> 
> 
> On 22/07/2024 16:44, David Malcolm wrote:
> > Does it help to hack this change into prune.exp:
> > 
> > diff --git a/gcc/testsuite/lib/prune.exp
> > b/gcc/testsuite/lib/prune.exp
> > index d00d37f015f7..f467d1a97bc6 100644
> > --- a/gcc/testsuite/lib/prune.exp
> > +++ b/gcc/testsuite/lib/prune.exp
> > @@ -109,7 +109,7 @@ proc prune_gcc_output { text } {
> >       # Many tests that use visibility will still pass on platforms
> > that don't support it.
> >       regsub -all "(^|\n)\[^\n\]*lto1: warning: visibility
> > attribute not supported in this configuration; ignored\[^\n\]*"
> > $text "" text
> >   
> > -    #send_user "After:$text\n"
> > +    send_user "After:$text\n"
> >   
> >       return $text
> >   }
> 
> I'm baffled.  Isn't that statement there just to debug
> prune_gcc_output?
> I suppose we could prune the whitespace from the diagram, but 
> prune_gcc_output does not know about types.  If there's 'int, that
> could 
> be int32_t, int16_t, int64_t, ptrdiff_t, or whatever.  Unless you
> want
> to make all integer types be considered equivalent for dejagnu
> purposes
> if they appear somewhere between vertical bars.

I may have misunderstood your email; I got the impression that you
having trouble seeing what gcc was emitting for you on this case.  If
there's a mismatch, then the output will survive pruning and get dumped
there.  But it sounds like that's not at all what you were talking
about; sorry.

> 
> > > 
> > > Would it make sense to handle this with one multi-line pattern
> > > for
> > > newlib based toolchains, ending with
> > >      { dg-end-multiline-output "" { target *-*-elf } } */
> > >    and one for glibc based toolchain, ending in
> > >      { dg-end-multiline-output "" { target !*-*-elf } } */
> > >    ?
> > 
> > Presumably the only difference is in the top-right hand box of the
> > diagram,
> 
> Unfortunately, there's also a lot of white space change in the rest
> of 
> the diagram.
> I have attached the patch I'm currently using for your perusal.

Thanks.  Looks good to me, but...

> 
>   whereas my objective for those tests was more about the lower
> > part of the diagram - I wanted to verify how we handle symbolic
> > buffer
> > sizes (e.g. (size * 4) + 3, and other run-time-computer sizes).
> > 
> > It's rather awkward to test the diagrams with DejaGnu, alas.
> > 
> > Would it might make sense to split out that file into three
> > separate
> > tests -11a, -11b, and -11c, and be more aggressive about only
> > running
> > the 2nd test on targets that we know generate "int" in the top-
> > right
> > box?
> 
> No, each dg-end-multiline-output stanza already can have its separate
> target selector, there is no point in putting them in separate files.
> I guess you could reduce the differences between platforms if you
> didn't 
> use types as defined by headerfiles directly, as they might be
> #defines 
> or typedefs or whatever, and instead used your own typedef or struct
> types.

...that might be a better idea.  All I care about for the tests that
are failing are the sizes so maybe using a   
   struct foo { uint_32_t val; }

is the way to go here.

Dave

Reply via email to