aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary T Welch <zwelch@codesourcery.com>2016-03-29 19:56:35 +0000
committerMike Stump <mrs@gcc.gnu.org>2016-03-29 19:56:35 +0000
commit13f0e8c7e717552cdb56ed3d34bc3595cea3ba43 (patch)
tree6814a875374f262baf0bdafdebb79c9b15b8e25d
parentf8a1abf8e3dc2ef5cb47a13f14e6a7ec8113a46f (diff)
downloadgcc-13f0e8c7e717552cdb56ed3d34bc3595cea3ba43.zip
gcc-13f0e8c7e717552cdb56ed3d34bc3595cea3ba43.tar.gz
gcc-13f0e8c7e717552cdb56ed3d34bc3595cea3ba43.tar.bz2
prune.exp (escape_regex_chars): New.
2016-03-29 Zachary T Welch <zwelch@codesourcery.com> * lib/prune.exp (escape_regex_chars): New. (prune_file_path): Update to quote metcharacters for regexp. From-SVN: r234533
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/lib/prune.exp25
2 files changed, 28 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2459a2a..fd0dc5d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-29 Zachary T Welch <zwelch@codesourcery.com>
+
+ * lib/prune.exp (escape_regex_chars): New.
+ (prune_file_path): Update to quote metcharacters for regexp.
+
2016-03-29 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/70429
diff --git a/gcc/testsuite/lib/prune.exp b/gcc/testsuite/lib/prune.exp
index 20fa1a2..ab6f369 100644
--- a/gcc/testsuite/lib/prune.exp
+++ b/gcc/testsuite/lib/prune.exp
@@ -78,12 +78,33 @@ proc prune_gcc_output { text } {
return $text
}
+# escape metacharacters in literal string, so it can be used in regex
+
+proc escape_regex_chars { line } {
+ return [string map {"^" "\\^"
+ "$" "\\$"
+ "(" "\\("
+ ")" "\\)"
+ "[" "\\["
+ "]" "\\]"
+ "{" "\\{"
+ "}" "\\}"
+ "." "\\."
+ "\\" "\\\\"
+ "?" "\\?"
+ "+" "\\+"
+ "*" "\\*"
+ "|" "\\|"} $line]
+}
+
proc prune_file_path { text } {
global srcdir
+ set safedir [escape_regex_chars $srcdir]
+ regsub -all "$safedir\/" $text "" text
+
# Truncate absolute file path into relative path.
- set topdir "[file dirname [file dirname [file dirname $srcdir]]]"
- regsub -all "$srcdir\/" $text "" text
+ set topdir "[file dirname [file dirname [file dirname $safedir]]]"
regsub -all "$topdir\/" $text "" text
return $text