1 /* This testcase caused ICE in do_SUBST on IA-32, because 0xf6 constant
2    was not sign-extended for QImode.  */
3 /* { dg-do run } */
4 /* { dg-options "-O2" } */
5 /* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
6 
7 #include <limits.h>
8 
9 void abort (void);
10 void exit (int);
11 
foo(void)12 void foo (void)
13 {
14   int i;
15   char *p;
16 
17   p = (char *) &i;
18   *p = -10;
19   if (* (unsigned char *) p != 0x100 - 10)
20     abort ();
21 }
22 
main(void)23 int main (void)
24 {
25   if (UCHAR_MAX == 255)
26     foo ();
27   exit (0);
28 }
29