diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2023-11-29 10:29:50 +0100 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2023-11-29 10:29:50 +0100 |
commit | 77f713a64aead2bcc68567de8431bdb67cb6b196 (patch) | |
tree | e2f3b1e663c7ef1c79ea6a5f5c73a1ae71b79efa /gcc | |
parent | 73a63efcdae4b979b4a1dcff2da7d68b905453a0 (diff) | |
download | gcc-77f713a64aead2bcc68567de8431bdb67cb6b196.zip gcc-77f713a64aead2bcc68567de8431bdb67cb6b196.tar.gz gcc-77f713a64aead2bcc68567de8431bdb67cb6b196.tar.bz2 |
testsuite: Handle double-quoted LTO section names [PR112728]
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).
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/lib/scanasm.exp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp index d30e361..a48794c 100644 --- a/gcc/testsuite/lib/scanasm.exp +++ b/gcc/testsuite/lib/scanasm.exp @@ -82,8 +82,8 @@ proc dg-scan { name positive testcase output_file orig_args } { 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 [regexp -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" |