summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2001-10-31 20:59:22 +0000
committerCorinna Vinschen <corinna@vinschen.de>2001-10-31 20:59:22 +0000
commitaaa68313b8a2c635670eb03130a4d06f195c93c5 (patch)
treede551a4e45ed596c745a0877cde3b92ee0112712
parentb433d00bbcd022648dc2dc07f12a4adad7940fce (diff)
downloadbinutils-gdb-aaa68313b8a2c635670eb03130a4d06f195c93c5.tar.gz
* gdb.base/miscexprs.c (main): Add usage of preprocessor
symbol `STORAGE' to allow to choose the storage class of the local datastructures. * gdb.base/miscexprs.exp: Handle setting a `-DSTORAGE=...' compiler directive.
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.base/miscexprs.c12
-rw-r--r--gdb/testsuite/gdb.base/miscexprs.exp13
3 files changed, 26 insertions, 7 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b61965bff22..d29216af132 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2001-10-31 Corinna Vinschen <vinschen@redhat.com>
+
+ * gdb.base/miscexprs.c (main): Add usage of preprocessor
+ symbol `STORAGE' to allow to choose the storage class of
+ the local datastructures.
+ * gdb.base/miscexprs.exp: Handle setting a `-DSTORAGE=...'
+ compiler directive.
+
2001-10-30 Michael Snyder <msnyder@redhat.com>
* gdb.base/jump.exp: Allow it to run for all targets.
diff --git a/gdb/testsuite/gdb.base/miscexprs.c b/gdb/testsuite/gdb.base/miscexprs.c
index 41bd29f6485..580255d27cf 100644
--- a/gdb/testsuite/gdb.base/miscexprs.c
+++ b/gdb/testsuite/gdb.base/miscexprs.c
@@ -7,27 +7,27 @@ marker1 ()
int
main ()
{
- struct {
+ STORAGE struct {
char c[100];
} cbig;
- struct {
+ STORAGE struct {
int i[800];
} ibig;
- struct {
+ STORAGE struct {
long l[900];
} lbig;
- struct {
+ STORAGE struct {
float f[200];
} fbig;
- struct {
+ STORAGE struct {
double d[300];
} dbig;
- struct {
+ STORAGE struct {
short s[400];
} sbig;
diff --git a/gdb/testsuite/gdb.base/miscexprs.exp b/gdb/testsuite/gdb.base/miscexprs.exp
index 795fc3eb8cd..ad8e11d837f 100644
--- a/gdb/testsuite/gdb.base/miscexprs.exp
+++ b/gdb/testsuite/gdb.base/miscexprs.exp
@@ -30,6 +30,17 @@ if $tracelevel then {
strace $tracelevel
}
+# By default, the datastructures are allocated on the stack. For targets
+# with very small stack, that will not work. In that case, just set
+# storage to `-DSTORAGE=static' which changes the datastructures to be
+# allocated in data segment.
+set storage "-DSTORAGE="
+if [target_info exists gdb,small_stack_section] {
+ set storage "-DSTORAGE=static"
+}
+
+set additional_flags "additional_flags=-w ${storage}"
+
#
# test running programs
#
@@ -40,7 +51,7 @@ set testfile "miscexprs"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ${additional_flags}]] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}