#include<stdio.h>
void foo (int a, int b, void (*hook) (int aa, int bb, int cc))
{
b += a;
hook (a, b, a + b);
}
void qq (int a)
{
auto void q1 (int aa, int bb, int cc);
void q1 (int aa, int bb, int cc)
{
printf ("%d %d %d\n", a, aa + bb, cc);
}
foo (a, a + 1, q1);
}
int main()
{
qq (10);
}
Compile with:
gcc -m32 -mregparm=3 -Os test.c
./a.out
10 31 -6674368
Ok, this was the only important part of the message to us GCC hackers. :-)
Can you please report a bug in bugzilla, saying which versions work and
which fail? Also can you write in the report what was your analysis
with respect to regparm?
Thanks!
Paolo