OSDN Git Service

2001-11-26 Fernando Nasser <fnasser@redhat.com>
authorfnasser <fnasser>
Mon, 26 Nov 2001 21:29:31 +0000 (21:29 +0000)
committerfnasser <fnasser>
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 0fdc2fe..9917e78 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 89e6a77..67edb8b 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.  */