]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/tree-ssa/pr33922.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr33922.c
1 /* { dg-do compile } */
2 /* { dg-options "-O3 -ftree-pre" } */
3
4 typedef enum
5 {
6 ST_TiemanStyle,
7 }
8 BrailleDisplay;
9 static int pendingCommand;
10 static int currentModifiers;
11 typedef struct
12 {
13 int (*updateKeys) (BrailleDisplay * brl, int *keyPressed);
14 }
15 ProtocolOperations;
16 static const ProtocolOperations *protocol;
17 int
18 brl_readCommand (BrailleDisplay * brl)
19 {
20 unsigned long int keys;
21 int command;
22 int keyPressed;
23 unsigned char routingKeys[200];
24 int routingKeyCount;
25 signed char rightVerticalSensor;
26 if (pendingCommand != (-1))
27 {
28 return command;
29 }
30 if (!protocol->updateKeys (brl, &keyPressed))
31 {
32 if (rightVerticalSensor >= 0)
33 keys |= 1;
34 if ((routingKeyCount == 0) && keys)
35 {
36 if (currentModifiers)
37 {
38 doChord:switch (keys);
39 }
40 else
41 {
42 doCharacter:
43 command = 0X2200;
44 if (keys & 0X01UL)
45 command |= 0001;
46 if (keys & 0X02UL)
47 command |= 0002;
48 if (keys & 0X04UL)
49 command |= 0004;
50 if (keys & 0X08UL)
51 command |= 0010;
52 if (keys & 0X10UL)
53 command |= 0020;
54 if (keys & 0X20UL)
55 command |= 0040;
56 if (currentModifiers & (0X0010 | 0X0200))
57 command |= 0100;
58 if (currentModifiers & 0X0040)
59 command |= 0200;
60 if (currentModifiers & 0X0100)
61 command |= 0X020000;
62 if (currentModifiers & 0X0400)
63 command |= 0X080000;
64 if (currentModifiers & 0X0800)
65 command |= 0X040000;
66 }
67 unsigned char key1 = routingKeys[0];
68 if (key1 == 0)
69 {
70 }
71 if (key1 == 1)
72 if (keys)
73 {
74 currentModifiers |= 0X0010;
75 goto doCharacter;
76 }
77 }
78 }
79 return command;
80 }