This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA]: testsuite/gdb.base/miscexprs.*
- To: gdb-patches <gdb-patches at sources dot redhat dot com>
- Subject: [RFA]: testsuite/gdb.base/miscexprs.*
- From: Corinna Vinschen <vinschen at redhat dot com>
- Date: Wed, 31 Oct 2001 17:53:46 +0100
- Reply-To: gdb-patches <gdb-patches at sources dot redhat dot com>
Hi,
on my target I have the same problem with the very small (2K) stack
when running miscexprs.exp as I already had with call-ar-st.exp.
I would like to propose the following patch, which adds the ability
to extend miscexprs.exp for targets, which also suffer from the
small stack. I added a compiler switch to define the preprocessor
symbol `STORAGE', which by default is set to empty. A target
specific conditional can be used for setting it to "static", to
allow running the tests with the datastructures allocated in the
global data area instead of on the stack. Obviously, miscexprs.exp
in the below incarantion just contains such a conditional only for
the target I'm just working on...
Corinna
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.
Index: miscexprs.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/miscexprs.c,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 miscexprs.c
--- miscexprs.c 1999/04/26 18:27:11 1.1.1.2
+++ miscexprs.c 2001/10/31 16:43:01
@@ -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;
Index: miscexprs.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/miscexprs.exp,v
retrieving revision 1.5
diff -u -p -r1.5 miscexprs.exp
--- miscexprs.exp 2001/03/06 08:21:50 1.5
+++ miscexprs.exp 2001/10/31 16:43:01
@@ -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 [istarget "stormy16-*-*"] then {
+ 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."
}