On Fri, Apr 25, 2014 at 12:47:32PM +0200, Eric Botcazou wrote:
> /* PR target/60941 */
> /* Reported by Martin Husemann <mar...@netbsd.org> */
> 
> extern void abort (void);
> 
> static void __attribute__((noinline))
> set (unsigned long *l)
> {
>   *l = 31;
> }
> 
> int main (void)
> {
>   unsigned long l;
>   int i;
> 
>   set (&l);
>   i = (int) l;
>   l = (unsigned long)(2U << i);
>   if (l != 0)
>     abort ();
>   return 0;
> }

I'm afraid the testcase will fail on int16 targets, so perhaps
you should guard the body of main other than return 0; with
#if __INT_MAX__ >= 2147483647ULL
or
#if __SIZEOF_INT__ >= 4
or similar (or require int32plus target, but gcc.c-torture/execute/
is not a good place for that and *.x files are terribly ugly, so
better would be to move the test to gcc.dg/torture/ in that case).

        Jakub

Reply via email to