Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/tree-ssa/tailcall-8-run.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O2" } */ /* { dg-additional-sources "tailcall-8.c" } */ struct s { int x; }; int expected; struct s *last_ptr; struct s tmp; void start (int val, struct s *initial_last_ptr) { expected = val; tmp.x = val; last_ptr = initial_last_ptr; } void f_direct (struct s param) { if (param.x != expected) __builtin_abort (); } void f_indirect (struct s *ptr) { if (ptr->x != expected) __builtin_abort (); last_ptr = ptr; ptr->x += 100; } void f_void (void) { if (last_ptr->x != expected + 100) __builtin_abort (); } void g1 (struct s); void g2 (struct s *); void g3 (struct s *); void g4 (struct s *); void g5 (struct s); void g6 (struct s); void g7 (struct s); void g8 (struct s *); void g9 (struct s *); int main (void) { struct s g6_s = { 106 }; start (1, 0); g1 (tmp); start (2, 0); g2 (&tmp); start (3, 0); g3 (&tmp); start (4, 0); g4 (&tmp); start (5, 0); g5 (tmp); start (6, &g6_s); g6 (tmp); start (7, 0); g7 (tmp); start (8, 0); g8 (&tmp); start (9, 0); g9 (&tmp); return 0; }