diff mbox series

testsuite: Handle double-quoted LTO section names [PR112728]

Message ID yddplzuxb84.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series testsuite: Handle double-quoted LTO section names [PR112728] | expand

Commit Message

Rainer Orth Nov. 28, 2023, 1:23 p.m. UTC
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

Richard Biener Nov. 28, 2023, 4:01 p.m. UTC | #1
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.
>
diff mbox series

Patch

# HG changeset patch
# Parent  00ba0ae2e7291afbbcee5f4abe6fb041e3cc5448
testsuite: Handle double-quoted LTO section names

diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp
--- a/gcc/testsuite/lib/scanasm.exp
+++ b/gcc/testsuite/lib/scanasm.exp
@@ -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"