2020-09-25 14:25:32 +00:00
|
|
|
/* bug #1265 - misadjusted stack from unprototyped function call */
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
int failures = 0;
|
|
|
|
|
|
|
|
char str1[10];
|
|
|
|
char str2[10];
|
|
|
|
|
|
|
|
int f2 (int x) { return x == 2345 ? 23 : -1; }
|
|
|
|
|
|
|
|
int main (void) {
|
|
|
|
int x, n;
|
|
|
|
|
|
|
|
sprintf (str1, "%p\n", &x);
|
|
|
|
x = 1234;
|
|
|
|
n = f1 (x);
|
|
|
|
sprintf (str2, "%p\n", &x);
|
2022-04-17 14:07:52 +00:00
|
|
|
|
2020-09-25 14:25:32 +00:00
|
|
|
if (strcmp(str1, str2)) {
|
|
|
|
puts("not equal");
|
|
|
|
failures++;
|
|
|
|
}
|
|
|
|
if (n != 42) {
|
|
|
|
puts("f1 returns wrong value");
|
|
|
|
failures++;
|
|
|
|
}
|
|
|
|
|
|
|
|
sprintf (str1, "%p\n", &x);
|
|
|
|
x = 2345;
|
|
|
|
n = f2 (x);
|
|
|
|
sprintf (str2, "%p\n", &x);
|
2022-04-17 14:07:52 +00:00
|
|
|
|
2020-09-25 14:25:32 +00:00
|
|
|
if (strcmp(str1, str2)) {
|
|
|
|
puts("not equal");
|
|
|
|
failures++;
|
|
|
|
}
|
|
|
|
if (n != 23) {
|
|
|
|
puts("f2 returns wrong value");
|
|
|
|
failures++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return failures;
|
|
|
|
}
|
|
|
|
|
|
|
|
int f1 (int x) { return x == 1234 ? 42 : -1; }
|