2001-11-26 Fernando Nasser <fnasser@redhat.com>
authorFernando Nasser <fnasser@redhat.com>
Mon, 26 Nov 2001 21:29:31 +0000 (21:29 +0000)
committerFernando Nasser <fnasser@redhat.com>
Mon, 26 Nov 2001 21:29:31 +0000 (21:29 +0000)
From 2001-11-12 Jackie Smith Cashion  <jsmith@redhat.com>:
* gdb.base/callfuncs.c (t_structs_a): Do not return a pointer
to a local (non-static) variable. Copy tstruct.a to a static buffer
and return a pointer to that buffer.
* gdb.base/callfwmall.c (t_structs_a): Ditto.

gdb/testsuite/gdb.base/callfuncs.c
gdb/testsuite/gdb.base/callfwmall.c

index 0fdc2fe0cc7ccb2e97b18d9ea3df121527b7a9ba..9917e788d0a3bdd4feab58054f1deb0008dcf121 100644 (file)
@@ -133,7 +133,12 @@ int    t_structs_i (struct struct1 tstruct) { return (tstruct.i); }
 long   t_structs_l (struct struct1 tstruct) { return (tstruct.l); }
 float  t_structs_f (struct struct1 tstruct) { return (tstruct.f); }
 double t_structs_d (struct struct1 tstruct) { return (tstruct.d); }
-char  *t_structs_a (struct struct1 tstruct) { return (tstruct.a); }
+char  *t_structs_a (struct struct1 tstruct)
+{
+  static char buf[8];
+  strcpy (buf, tstruct.a);
+  return buf;
+}
 #else
 char   t_structs_c (tstruct) struct struct1 tstruct; { return (tstruct.c); }
 short  t_structs_s (tstruct) struct struct1 tstruct; { return (tstruct.s); }
@@ -141,7 +146,12 @@ int    t_structs_i (tstruct) struct struct1 tstruct; { return (tstruct.i); }
 long   t_structs_l (tstruct) struct struct1 tstruct; { return (tstruct.l); }
 float  t_structs_f (tstruct) struct struct1 tstruct; { return (tstruct.f); }
 double t_structs_d (tstruct) struct struct1 tstruct; { return (tstruct.d); }
-char  *t_structs_a (tstruct) struct struct1 tstruct; { return (tstruct.a); }
+char  *t_structs_a (tstruct) struct struct1 tstruct;
+{
+  static char buf[8];
+  strcpy (buf, tstruct.a);
+  return buf;
+}
 #endif
 
 /* Test that calling functions works if there are a lot of arguments.  */
index 89e6a7711161cf1d324c90ecc6be7034aba16baf..67edb8b70d4b8318b7c4f2c709182f2530d7c1d3 100644 (file)
@@ -138,7 +138,12 @@ int    t_structs_i (struct struct1 tstruct) { return (tstruct.i); }
 long   t_structs_l (struct struct1 tstruct) { return (tstruct.l); }
 float  t_structs_f (struct struct1 tstruct) { return (tstruct.f); }
 double t_structs_d (struct struct1 tstruct) { return (tstruct.d); }
-char  *t_structs_a (struct struct1 tstruct) { return (tstruct.a); }
+char  *t_structs_a (struct struct1 tstruct)
+{
+  static char buf[8];
+  strcpy (buf, tstruct.a);
+  return buf;
+}
 #else
 char   t_structs_c (tstruct) struct struct1 tstruct; { return (tstruct.c); }
 short  t_structs_s (tstruct) struct struct1 tstruct; { return (tstruct.s); }
@@ -146,7 +151,12 @@ int    t_structs_i (tstruct) struct struct1 tstruct; { return (tstruct.i); }
 long   t_structs_l (tstruct) struct struct1 tstruct; { return (tstruct.l); }
 float  t_structs_f (tstruct) struct struct1 tstruct; { return (tstruct.f); }
 double t_structs_d (tstruct) struct struct1 tstruct; { return (tstruct.d); }
-char  *t_structs_a (tstruct) struct struct1 tstruct; { return (tstruct.a); }
+char  *t_structs_a (tstruct) struct struct1 tstruct;
+{
+  static char buf[8];
+  strcpy (buf, tstruct.a);
+  return buf;
+}
 #endif
 
 /* Test that calling functions works if there are a lot of arguments.  */