testsuite: Handle double-quoted LTO section names [PR112728]
Checks
Commit Message
The gcc.dg/scantest-lto.c test FAILs on Solaris/SPARC with the native as:
FAIL: gcc.dg/scantest-lto.c scan-assembler-not ascii
FAIL: gcc.dg/scantest-lto.c scan-assembler-times ascii 0
It requires double-quoting the section name which scanasm.exp doesn't
allow for.
This patch fixes that.
Tested on sparc-sun-solaris2.11 (as and gas) and i386-pc-solaris2.11 (as
and gas).
As reported in PR testsuite/112728, there are more targets where this
test FAILs, but I cannot say why and those are probably different
issues.
I guess this patch is pretty obvious and can be committed under my
testsuite maintainership, but I may be overlooking something?
Thanks.
Rainer
Comments
On Tue, Nov 28, 2023 at 2:24 PM Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>
> The gcc.dg/scantest-lto.c test FAILs on Solaris/SPARC with the native as:
>
> FAIL: gcc.dg/scantest-lto.c scan-assembler-not ascii
> FAIL: gcc.dg/scantest-lto.c scan-assembler-times ascii 0
>
> It requires double-quoting the section name which scanasm.exp doesn't
> allow for.
>
> This patch fixes that.
>
> Tested on sparc-sun-solaris2.11 (as and gas) and i386-pc-solaris2.11 (as
> and gas).
>
> As reported in PR testsuite/112728, there are more targets where this
> test FAILs, but I cannot say why and those are probably different
> issues.
>
> I guess this patch is pretty obvious and can be committed under my
> testsuite maintainership, but I may be overlooking something?
I think you are covered.
> Thanks.
> Rainer
>
> --
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
>
>
> 2023-11-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
>
> gcc/testsuite:
> PR testsuite/112728
> * lib/scanasm.exp (dg-scan): Allow for double-quoted LTO section names.
> (scan-assembler-times): Likewise.
> (scan-assembler-dem-not): Likewise.
>
# HG changeset patch
# Parent 00ba0ae2e7291afbbcee5f4abe6fb041e3cc5448
testsuite: Handle double-quoted LTO section names
@@ -82,8 +82,8 @@ proc dg-scan { name positive testcase ou
if { [string compare -length 14 $name scan-assembler] == 0 } {
# Remove LTO sections.
# ??? Somehow, .*? is still greedy.
- # regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*\.gnu\.lto_.*?\n(?=[[:space:]]*\.text\n)} $text {\1} text
- regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
+ # regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*"?\.gnu\.lto_.*?\n(?=[[:space:]]*\.text\n)} $text {\1} text
+ regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*"?\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
}
set match [regexp -- $pattern $text]
@@ -503,7 +503,7 @@ proc scan-assembler-times { args } {
set fd [open $output_file r]
set text [read $fd]
close $fd
- regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
+ regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*"?\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
set result_count [llength [regexp -inline -all -- $pattern $text]]
if {$result_count == $times} {
@@ -565,7 +565,7 @@ proc scan-assembler-dem { args } {
set output [remote_exec host "$cxxfilt" "" "$output_file"]
set text [lindex $output 1]
- regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
+ regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*"?\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
if [regexp -- $pattern $text] {
pass "$testcase scan-assembler-dem $pp_pattern"
@@ -622,7 +622,7 @@ proc scan-assembler-dem-not { args } {
set output [remote_exec host "$cxxfilt" "" "$output_file"]
set text [lindex $output 1]
- regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
+ regsub -all {(^|\n)[[:space:]]*\.section[[:space:]]*"?\.gnu\.lto_(?:[^\n]*\n(?![[:space:]]*\.(section|text|data|bss)))*[^\n]*\n} $text {\1} text
if ![regexp -- $pattern $text] {
pass "$testcase scan-assembler-dem-not $pp_pattern"