Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/pr48235.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 compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */ /* { dg-require-effective-target freorder } */ /* { dg-options "-O -fno-guess-branch-probability -fpeel-loops -freorder-blocks-and-partition -fschedule-insns2 -fsel-sched-pipelining -fselective-scheduling2" } */ struct intC { short x; short y; }; int size_x; static inline int TileDiffXY (int x, int y) { return (y * size_x) + x; } struct HangarTileTable { struct intC ti; int hangar_num; }; struct AirportSpec { struct HangarTileTable *depot_table; int size; }; void Get (); struct AirportSpec dummy; static inline int GetRotatedTileFromOffset (int *a, struct intC tidc) { if (!*a) Get (); switch (*a) { case 0: return (tidc.y << size_x) + tidc.x; case 1: return TileDiffXY (tidc.y, dummy.size - tidc.x); case 2: return TileDiffXY (tidc.x, dummy.size - tidc.y); case 3: return TileDiffXY (dummy.size - 1, tidc.x); } } int GetHangarNum (int *a) { int i; for (i = 0; i < dummy.size; i++) if (GetRotatedTileFromOffset (a, dummy.depot_table[i].ti)) return dummy.depot_table[i].hangar_num; }