diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c b/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c new file mode 100644 index 000000000..57446b263 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c @@ -0,0 +1,22 @@ +extern void abort (void); +extern int abs_called; +extern int inside_main; + +/* The labs call should have been optimized, but the abs call + shouldn't have been. */ + +int +abs (int x) +{ + if (inside_main) + abs_called = 1; + return (x < 0 ? -x : x); +} + +long +labs (long x) +{ + if (inside_main) + abort (); + return (x < 0 ? -x : x); +} |