1 /* PR rtl-optimization/34628 */
2 /* Origin: Martin Michlmayr <tbm@cyrius.com> */
3 
4 typedef unsigned short u16;
5 typedef unsigned char u8;
6 
7 static void
do_segfault(u8 in_buf[],const u8 out_buf[],const int len)8 do_segfault(u8 in_buf[], const u8 out_buf[], const int len)
9 {
10   int i;
11 
12   for (i = 0; i < len; i++) {
13     asm("");
14 
15     in_buf[2*i] = (   out_buf[2*i] | out_buf[(2*i)+1]<<8  ) & 0xFF;
16 
17     asm("");
18 
19     in_buf[(2*i)+1] =  ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) >> 8;
20 
21     asm("");
22   }
23 }
24 
main(int argc,char * argv[])25 int main(int argc, char *argv[])
26 {
27   u8 outbuf[32] = "buffer     ";
28   u8 inbuf[32] = "\f";
29 
30   asm("");
31   do_segfault(inbuf, outbuf, 12);
32   asm("");
33 
34   return 0;
35 }
36