From 9eb5da60e8822e1f6fa90b32bff6123ed62c146c Mon Sep 17 00:00:00 2001
From: Frederik Harwath <frederik@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 <frederik@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(-)
@@ -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