On Thu, May 02, 2013 at 10:30:57PM -0600, Jeff Law wrote:
> --- /dev/null
> +++ b/gcc/testsuite/gcc.c-torture/execute/pr57144.c
> @@ -0,0 +1,15 @@
> +__attribute__ ((noinline))
> +foo(int a)
> +{
> +  int z = a > 0 ? a : -a;
> +  long x = z;
> +  if (x > 0x100000000)
> +    abort ();
> +  else
> +    exit (0);
> +}
> +
> +main()
> +{
> +  foo (1);
> +}

Just commenting on the testcase, could you please:
1) add return types (void to foo and int to main)
2) use long long instead of long, otherwise the testcase doesn't fail
   without your patch with -m32
3) I'd add LL suffix to the constant too
4) either prototype extern void abort (void); extern void exit (int);
   or use __builtin_{abort,exit}?

For 1) and 4) we usually add at least C89 testcases now, unless strictly
necessary (testing K&R stuff).  I believe with long long the testcase should
be fine even on say AVR, because C99 says that long long must be at least
64-bit.

        Jakub

Reply via email to