blob: a35f8f3875103b1e9874231a34b5b7bc56f2fba6 [file] [log] [blame]
/* PR tree-optimization/51481 */
/* { dg-do compile } */
/* { dg-options "-O -fexceptions -fipa-cp -fipa-cp-clone" } */
/* { dg-require-effective-target exceptions } */
extern const unsigned short int **foo (void)
__attribute__ ((__nothrow__, __const__));
struct S { unsigned short s1; int s2; };
extern struct S *s[26];
void
bar (int x, struct S *y, ...)
{
static struct S *t;
__builtin_va_list ap;
__builtin_va_start (ap, y);
if (t != s[7])
{
const char *p = "aAbBc";
t = s[7];
while ((*foo ())[(unsigned char) *p])
p++;
}
__builtin_printf (x == 0 ? "abc\n" : "def\n");
if (y != 0)
__builtin_printf ("ghi %d %d", y->s2, y->s1);
__builtin_va_end (ap);
}
void
baz (char *x)
{
bar (1, 0, x);
}