This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, PR65126, testsuite] Add additional_sources_used


Hi,

This patch fixes PR65126, which is about the fact that the cleanup procs are not cleaning up files generated from additional_sources. This happens because dg-additional-files-options empties additional_sources before the cleanup procs can use it.

Examples of leftover files because of this PR are:
- vect-simd-clone-10a.c.126t.vect
- pr47218-1.o, pr47218-1.ii, pr47218-1.s

The patch introduces a variable additional_sources_used, which is set by dg-additional-files-options before it empties additional_sources. The cleanup procs are modified to use additional_sources_used.

With this patch, after running test I no longer find the leftover files in the test directories.

Build and reg-tested on x86_64. OK for stage4?

Thanks,
- Tom
2015-02-22  Tom de Vries  <tom@codesourcery.com>

	* lib/gcc-defs.exp (additional_sources_used): Add new var.
	(dg-additional-files-options): Copy additional_sources to
	additional_sources_used before emptying additional_sources.
	* lib/gcc-dg.exp (cleanup-coverage-files, cleanup-repo-files)
	(cleanup-stack-usage, cleanup-ada-spec, cleanup-dump)
	(cleanup-saved-temps): Use additional_sources_used instead of
	additional_sources.
	(dg-test): Reset additional_sources_used.
---
 gcc/testsuite/lib/gcc-defs.exp |  3 +++
 gcc/testsuite/lib/gcc-dg.exp   | 32 +++++++++++++++++++-------------
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/gcc/testsuite/lib/gcc-defs.exp b/gcc/testsuite/lib/gcc-defs.exp
index 6f6e719..a30b176 100644
--- a/gcc/testsuite/lib/gcc-defs.exp
+++ b/gcc/testsuite/lib/gcc-defs.exp
@@ -268,6 +268,7 @@ proc dg-additional-options { args } {
 # main source file.
 
 set additional_sources ""
+set additional_sources_used ""
 
 proc dg-additional-sources { args } {
     global additional_sources
@@ -290,6 +291,7 @@ proc dg-additional-files { args } {
 
 proc dg-additional-files-options { options source } {
     global additional_sources
+    global additional_sources_used
     global additional_files
     set to_download [list]
     if { $additional_sources != "" } then {
@@ -301,6 +303,7 @@ proc dg-additional-files-options { options source } {
 	    lappend options "additional_flags=$additional_sources"
 	}
 	set to_download [concat $to_download $additional_sources]
+	set additional_sources_used "$additional_sources"
 	set additional_sources ""
     }
     if { $additional_files != "" } then { 
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 443e8ed..5a9102e 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -495,14 +495,15 @@ proc cleanup-profile-file { } {
 
 # Remove compiler-generated coverage files for the current test.
 proc cleanup-coverage-files { } {
+    global additional_sources_used
     set testcase [testname-for-summary]
     # The name might include a list of options; extract the file name.
     set testcase [lindex $testcase 0]
     remove-build-file "[file rootname [file tail $testcase]].gc??"
 
     # Clean up coverage files for additional source files.
-    if [info exists additional_sources] {
-	foreach srcfile $additional_sources {
+    if [info exists additional_sources_used] {
+	foreach srcfile $additional_sources_used {
 	    remove-build-file "[file rootname [file tail $srcfile]].gc??"
 	}
     }
@@ -510,6 +511,7 @@ proc cleanup-coverage-files { } {
 
 # Remove compiler-generated files from -repo for the current test.
 proc cleanup-repo-files { } {
+    global additional_sources_used
     set testcase [testname-for-summary]
     # The name might include a list of options; extract the file name.
     set testcase [lindex $testcase 0]
@@ -517,8 +519,8 @@ proc cleanup-repo-files { } {
     remove-build-file "[file rootname [file tail $testcase]].rpo"
 
     # Clean up files for additional source files.
-    if [info exists additional_sources] {
-	foreach srcfile $additional_sources {
+    if [info exists additional_sources_used] {
+	foreach srcfile $additional_sources_used {
 	    remove-build-file "[file rootname [file tail $srcfile]].o"
 	    remove-build-file "[file rootname [file tail $srcfile]].rpo"
 	}
@@ -554,8 +556,8 @@ proc cleanup-stack-usage { } {
     remove-build-file "[file rootname [file tail $testcase]].su"
 
     # Clean up files for additional source files.
-    if [info exists additional_sources] {
-	foreach srcfile $additional_sources {
+    if [info exists additional_sources_used] {
+	foreach srcfile $additional_sources_used {
 	    remove-build-file "[file rootname [file tail $srcfile]].su"
 	}
     }
@@ -563,12 +565,13 @@ proc cleanup-stack-usage { } {
 
 # Remove an Ada spec file for the current test.
 proc cleanup-ada-spec { } {
+    global additional_sources_used
     set testcase [testname-for-summary]
     remove-build-file "[get_ada_spec_filename $testcase]"
 
     # Clean up files for additional source files.
-    if [info exists additional_sources] {
-	foreach srcfile $additional_sources {
+    if [info exists additional_sources_used] {
+	foreach srcfile $additional_sources_used {
 	    remove-build-file "[get_ada_spec_filename $srcfile]"
 	}
     }
@@ -576,6 +579,7 @@ proc cleanup-ada-spec { } {
 
 # Remove all dump files with the provided suffix.
 proc cleanup-dump { suffix } {
+    global additional_sources_used
     set testcase [testname-for-summary]
     # The name might include a list of options; extract the file name.
     set src [file tail [lindex $testcase 0]]
@@ -586,8 +590,8 @@ proc cleanup-dump { suffix } {
     remove-build-file "[file tail $src].gk.$suffix"
 
     # Clean up dump files for additional source files.
-    if [info exists additional_sources] {
-	foreach srcfile $additional_sources {
+    if [info exists additional_sources_used] {
+	foreach srcfile $additional_sources_used {
 	    remove-build-file "[file tail $srcfile].$suffix"
 	    remove-build-file "[file rootname [file tail $srcfile]].exe.$suffix"
 	    remove-build-file "[file rootname [file tail $srcfile]].exe.ltrans\[0-9\]*.$suffix"
@@ -603,7 +607,7 @@ proc cleanup-dump { suffix } {
 # if there are tests generating them.
 # ARGS is a list of suffixes to NOT delete.
 proc cleanup-saved-temps { args } {
-    global additional_sources
+    global additional_sources_used
     set suffixes {}
 
     # add the to-be-kept suffixes
@@ -625,8 +629,8 @@ proc cleanup-saved-temps { args } {
     }
 
     # Clean up saved temp files for additional source files.
-    if [info exists additional_sources] {
-	foreach srcfile $additional_sources {
+    if [info exists additional_sources_used] {
+	foreach srcfile $additional_sources_used {
 	    foreach suffix $suffixes {
 		remove-build-file "[file rootname [file tail $srcfile]]$suffix"
 		remove-build-file "[file rootname [file tail $srcfile]].exe$suffix"
@@ -746,6 +750,7 @@ if { [info procs saved-dg-test] == [list] } {
 	    set saved_info $errorInfo
 	    set additional_files ""
 	    set additional_sources ""
+	    set additional_sources_used ""
 	    set additional_prunes ""
 	    set shouldfail 0
 	    if [info exists compiler_conditional_xfail_data] {
@@ -759,6 +764,7 @@ if { [info procs saved-dg-test] == [list] } {
 	}
 	set additional_files ""
 	set additional_sources ""
+	set additional_sources_used ""
 	set additional_prunes ""
 	set shouldfail 0
 	if [info exists set_target_env_var] {
-- 
1.9.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]