111
|
1 /* PR middle-end/12210 */
|
|
2 /* Origin: Ossadchy Yury A. <waspcoder@mail.ru> */
|
|
3
|
|
4 /* This used to fail on i686 because the argument was not copied
|
|
5 to the right location by __builtin_apply after the direct call. */
|
|
6
|
|
7 /* { dg-do run } */
|
|
8 /* { dg-require-effective-target untyped_assembly } */
|
|
9
|
|
10
|
|
11 #define INTEGER_ARG 5
|
|
12
|
|
13 extern void abort(void);
|
|
14
|
|
15 void foo(int arg)
|
|
16 {
|
|
17 if (arg != INTEGER_ARG)
|
|
18 abort();
|
|
19 }
|
|
20
|
|
21 void bar(int arg)
|
|
22 {
|
|
23 foo(arg);
|
|
24 __builtin_apply(foo, __builtin_apply_args(), 16);
|
|
25 }
|
|
26
|
|
27 int main(void)
|
|
28 {
|
|
29 bar(INTEGER_ARG);
|
|
30
|
|
31 return 0;
|
|
32 }
|