aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--lib/dg.exp15
2 files changed, 13 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index cab6b01..f333916 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lib/dg.exp (dg-test): Support nested calls.
+
2010-04-13 Ben Elliston <bje@gnu.org>
* testglue.c: Remove duplicated prototypes for abort and exit.
diff --git a/lib/dg.exp b/lib/dg.exp
index 7325df5..e3e07d9 100644
--- a/lib/dg.exp
+++ b/lib/dg.exp
@@ -671,10 +671,11 @@ proc dg-test { args } {
# Define our own "special function" `unknown' so we catch spelling errors.
# But first rename the existing one so we can restore it afterwards.
- catch {rename dg-save-unknown ""}
- rename unknown dg-save-unknown
- proc unknown { args } {
- return -code error "unknown dg option: $args"
+ if { [info procs dg-save-unknown] == [list] } {
+ rename unknown dg-save-unknown
+ proc unknown { args } {
+ return -code error "unknown dg option: $args"
+ }
}
set tmp [dg-get-options $prog]
@@ -698,8 +699,10 @@ proc dg-test { args } {
}
# Restore normal error handling.
- rename unknown ""
- rename dg-save-unknown unknown
+ if { [info procs dg-save-unknown] != [list] } {
+ rename unknown ""
+ rename dg-save-unknown unknown
+ }
# If we're not supposed to try this test on this target, we're done.
if { [lindex ${dg-do-what} 1] == "N" } {