/* { dg-do run } */ /* { dg-options "-O2 -fdump-tree-dce1-details -lm" } */ /* { dg-message "note: function call is shrink-wrapped into error conditions\." "Missing conditional dce" {target "*-*-*"} 15 } */ #include #include #include #include int total_err_count = 0; double foo_opt(double y) __attribute__((noinline)); double foo_opt(double y) { double yy = 0; errno = 0; yy = log(y); return 0; } double foo(double y) __attribute__((noinline)); double foo(double y) { double yy = 0; errno = 0; yy = log(y); return yy; } int test(double (*fp)(double y) ) { int i,x; for (i = -100; i < 100; i++) { fp(i); if (errno) total_err_count ++; } return total_err_count; } int main() { int en1, en2; double yy; total_err_count = 0; en1 = test(foo_opt); total_err_count = 0; en2 = test(foo); if (en1 != en2) abort(); return 0; }