From: Rainer Orth Date: Wed, 29 Nov 2023 09:29:50 +0000 (+0100) Subject: testsuite: Handle double-quoted LTO section names [PR112728] X-Git-Tag: basepoints/gcc-15~4180 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77f713a64aead2bcc68567de8431bdb67cb6b196;p=thirdparty%2Fgcc.git 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 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. --- diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp index d30e3617fe9b..a48794c05ed7 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"