Further observations regarding alloca on i586-pc-linux-gnu
Joerg Pommnitz
pommnitz@darmstadt.gmd.de
Thu Aug 20 09:09:00 GMT 1998
While the following code dies with a segmentation violation
---
include <cstdlib>
#include <iostream>
class xx {
public:
char *xy (char *c = alloca (18)) {
strcpy (c, "Hello World!");
return c;
}
};
int
main ()
{
xx x;
cout << x.xy () << endl;
}
---
this one works fine:
#include <cstdlib>
#include <iostream>
class xx {
public:
char *xy (char *c = alloca (18)) {
strcpy (c, "Hello World!");
return c;
}
};
int
main ()
{
xx x;
char *c = alloca (18);
cout << x.xy (c) << endl;
}
Is this a bug? I think yes, but I'm not sure whether case #1
is supposed to work. Since alloca is a compiler builtin
function this relates to egcs development and should either be
fixed or documented.
--
Regards
Joerg
GMD-IPSI, Dolivostr. 15, Zimmer 120, D-64293 Darmstadt
+49-6151-869-786 (Phone), -818 (FAX)
More information about the Gcc
mailing list