Hi, Dump files produced from an offloading compiler through "-foffload=-fdump-..." do not get removed by gcc-dg.exp and other exp-files of the testsuite that use the cleanup code from this file (e.g. libgomp). This can lead to problems if scan-dump detects leftover dumps from previous runs of a test case.
This patch adapts the existing cleanup logic for "-flto" to handle "-flto" and "-foffload" in a uniform way. The glob pattern that is used for matching the "ltrans" files is also changed since the existing pattern failed to remove some LTO ("ltrans0.ltrans.") dump files. This patch gets rid of at least one unresolved libgomp test result that would otherwise be introduced by the patch discussed in this thread: https://gcc.gnu.org/pipermail/gcc-patches/2020-November/557889.html diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index e8ad3052657..e0560af205f 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -194,31 +194,47 @@ proc schedule-cleanups { opts } { [...] - lappend tfiles "$stem.{$basename_ext,exe}" I do not understand why "exe" should be included here. I have removed it and I did not notice any files matching the resultig pattern being left back by "make check-gcc". Best regards, Frederik ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter
>From 9eb5da60e8822e1f6fa90b32bff6123ed62c146c Mon Sep 17 00:00:00 2001 From: Frederik Harwath <frede...@codesourcery.com> Date: Wed, 4 Nov 2020 14:09:46 +0100 Subject: [PATCH] testsuite: Clean up lto and offload dump files Dump files produced from an offloading compiler through "-foffload=-fdump-..." do not get removed by gcc-dg.exp and other exp-files of the testsuite that use the cleanup code from this file (e.g. libgomp). This can lead to problems if scan-dump detects leftover dumps from previous runs of a test case. This patch adapts the existing cleanup logic for "-flto" to handle "-flto" and "-foffload" in a uniform way. The glob pattern that is used for matching the "ltrans" files is also changed since the existing pattern failed to match some dump files. 2020-11-04 Frederik Harwath <frede...@codesourcery.com> gcc/testsuite/ChangeLog: * lib/gcc-dg.exp (proc schedule-cleanups): Adapt "-flto" handling, add "-foffload" handling. --- gcc/testsuite/lib/gcc-dg.exp | 50 ++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index e8ad3052657..e0560af205f 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -194,31 +194,47 @@ proc schedule-cleanups { opts } { # stem.ext.<passnum><fam>.<passname><pass-instances> # (tree)passes can have multiple instances, thus optional trailing * set ptn "\[0-9\]\[0-9\]\[0-9\]$ptn.*" + set ltrans no + set mkoffload no + # Handle ltrans files around -flto if [regexp -- {(^|\s+)-flto(\s+|$)} $opts] { verbose "Cleanup -flto seen" 4 - set ltrans "{ltrans\[0-9\]*.,}" - } else { - set ltrans "" + set ltrans yes + } + + if [regexp -- {(^|\s+)-foffload=} $opts] { + verbose "Cleanup -foffload seen" 4 + set mkoffload yes } - set ptn "$ltrans$ptn" + verbose "Cleanup final ptn: $ptn" 4 set tfiles {} foreach src $testcases { - set basename [file tail $src] - if { $ltrans != "" } { - # ??? should we use upvar 1 output_file instead of this (dup ?) - set stem [file rootname $basename] - set basename_ext [file extension $basename] - if {$basename_ext != ""} { - regsub -- {^.*\.} $basename_ext {} basename_ext - } - lappend tfiles "$stem.{$basename_ext,exe}" - unset basename_ext - } else { - lappend tfiles $basename - } + set basename [file tail $src] + set stem [file rootname $basename] + set basename_ext [file extension $basename] + if {$basename_ext != ""} { + regsub -- {^.*\.} $basename_ext {} basename_ext + } + set extensions [list $basename_ext] + + if { $ltrans == yes } { + lappend extensions "ltrans\[0-9\]*.ltrans" + } + if { $mkoffload == yes} { + # The * matches the offloading target's name, e.g. "xnvptx-none". + lappend extensions "*.mkoffload" + } + + set extensions_ptn [join $extensions ","] + if { [llength $extensions] > 1 } { + set extensions_ptn "{$extensions_ptn}" + } + + lappend tfiles "$stem.$extensions_ptn" } + if { [llength $tfiles] > 1 } { set tfiles [join $tfiles ","] set tfiles "{$tfiles}" -- 2.17.1