aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/pr98952.c
blob: c487fbc403ef2bef8d76271bb588b110240a90eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* { dg-do run { target { powerpc*-*-linux* && ilp32 } } } */
/* { dg-options "-O2" } */

/* PR 96983 reported that the test in libgcc's tramp.S was backwards and it
   would abort if the trampoline size passed to the function was greater than
   the size the runtime was expecting (40).  It should abort if the size is less
   than 40, not greater than 40.  This test creates a call to __trampoline_setup
   with a much larger buffer to make sure the function does not abort.

   We do not run this test on 64-bit since __trampoline_setup is not present in
   64-bit systems.

   We only run the test under Linux in case the other systems have some
   different variant for __trampoline_setup.  */

#ifndef SIZE
#define SIZE 100
#endif

extern void __trampoline_setup (int *, unsigned, void *, void *);

int main (void)
{
  int tramp[SIZE / sizeof (int)];

  __trampoline_setup (tramp, SIZE, 0, 0);
  return 0;
}