/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ __attribute__((noinline)) static int test2(int a) { if (__builtin_constant_p (a)) __builtin_abort (); return a; } static int test(int *a) { int val = *(volatile int *)a; if (__builtin_constant_p (val)) __builtin_abort (); if (val) return test2(val); return 0; } int a; int main() { a = 0; return test (&a); } /* { dg-final { scan-tree-dump "test2" "optimized" } } */