Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/pr33763.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line source
/* PR tree-optimization/33763 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ typedef struct { void *a; void *b; } T; extern void *foo (const char *, const char *); extern void *bar (void *, const char *, T); extern int baz (const char *, int); extern inline __attribute__ ((always_inline, gnu_inline)) int baz (const char *x, int y) { return 2; } int baz (const char *x, int y) { return 1; } int xa, xb; static void * inl (const char *x, const char *y) { T t = { &xa, &xb }; int *f = (int *) __builtin_malloc (sizeof (int)); const char *z; int o = 0; void *r = 0; for (z = y; *z; z++) { if (*z == 'r') o |= 1; if (*z == 'w') o |= 2; } if (o == 1) *f = baz (x, 0); if (o == 2) *f = baz (x, 1); if (o == 3) *f = baz (x, 2); if (o && *f > 0) r = bar (f, "w", t); return r; } void * foo (const char *x, const char *y) { return inl (x, y); }