From bf6eb87bd822b27d75edd18ca1dba0fda18d59e4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 1 Oct 1998 17:34:45 +0000 Subject: New test from PR 17544 From-SVN: r22719 --- gcc/testsuite/gcc.c-torture/ChangeLog | 3 +- gcc/testsuite/gcc.c-torture/execute/981001-1.c | 38 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.c-torture/execute/981001-1.c (limited to 'gcc') diff --git a/gcc/testsuite/gcc.c-torture/ChangeLog b/gcc/testsuite/gcc.c-torture/ChangeLog index 6bdca3f..d1ec257 100644 --- a/gcc/testsuite/gcc.c-torture/ChangeLog +++ b/gcc/testsuite/gcc.c-torture/ChangeLog @@ -1,6 +1,7 @@ Thu Oct 1 17:15:26 1998 Nick Clifton - * compile/981001-1.c (main): New test. + * compile/981001-1.c: New test. + * execute/981001-1.c: New test. Wed Aug 26 16:10:00 1997 J"orn Rennecke diff --git a/gcc/testsuite/gcc.c-torture/execute/981001-1.c b/gcc/testsuite/gcc.c-torture/execute/981001-1.c new file mode 100644 index 0000000..da63f47 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/981001-1.c @@ -0,0 +1,38 @@ +#define NG 0x100L + +unsigned long flg = 0; + +long sub (int n) +{ + int a, b ; + + if (n >= 2) + { + if (n % 2 == 0) + { + a = sub (n / 2); + + return (a + 2 * sub (n / 2 - 1)) * a; + } + else + { + a = sub (n / 2 + 1); + b = sub (n / 2); + + return a * a + b * b; + } + } + else + return (long) n; +} + +int main (void) +{ + if (sub (30) != 832040L) + flg |= NG; + + if (flg) + abort (); + + exit (0); +} -- cgit v1.1