http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47222
--- Comment #9 from Jan Hubicka <hubicka at ucw dot cz> 2011-01-09 18:06:44 UTC
---
>
> Run-time abort. Please check 32bit.
OK, these reproduce to me. Adding "staitic" into the testcase as follows:
/* PR middle-end/12210 */
/* Origin: Ossadchy Yury A. <waspco...@mail.ru> */
/* This used to fail on i686 because the argument was not copied
to the right location by __builtin_apply after the direct call. */
/* { dg-do run } */
#define INTEGER_ARG 5
extern void abort(void);
static void foo(int arg)
{
if (arg != INTEGER_ARG)
abort();
}
static void bar(int arg)
{
foo(arg);
__builtin_apply(foo, __builtin_apply_args(), 16);
}
int main(void)
{
bar(INTEGER_ARG);
return 0;
}
make it fail too, so it is pre-existing wrong code. I am looking into what
gets wrong.
Honza