On Mon, 2024-07-22 at 11:37 +0100, Joern Wolfgang Rennecke wrote: > While on x86_64-pc-linux-gnu, the second diagram shows the type > written > as 'int', as expected, on a 16 and 32 bit newlib based toolchain, it > is > being output as int32_t . And all the formatting is also a bit > different, probably due to the change in how the int32_t is > displayed.
Sorry about over-specifying the tests output. > > What do other people see on toolchains where the regression tests > actually have I/O functionality? FWIW on my x86_64-pc-linux-gnu with make check-gcc RUNTESTFLAGS="-v -v --target_board=unix\{-m32,-m64\} analyzer.exp=out-of-bounds-diagram-11.c" I see this output for the 2nd test: ┌───────────────────────────────────────┐ │ write of '(int) 42' │ └───────────────────────────────────────┘ │ │ │ │ v v ┌──────────────────────────────────────────────────┐┌──────────────────┐ │ buffer allocated on stack at (1) ││after valid range │ └──────────────────────────────────────────────────┘└──────────────────┘ ├────────────────────────┬─────────────────────────┤├────────┬─────────┤ │ │ ╭────────────────┴───────────────╮ ╭─────────┴────────╮ │capacity: '(size * 4) + 3' bytes│ │overflow of 1 byte│ ╰────────────────────────────────╯ ╰──────────────────╯ 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 } > > 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, 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? > > I have no idea what toolchains with different libraries (and hence > header files) would see. > Sorry again about this Dave