131
|
1 /* PR sanitizer/81281 */
|
|
2 /* { dg-do compile } */
|
|
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
|
|
4 /* { dg-final { scan-tree-dump-not "\[+=-] \?123\[ ;]" "optimized" } } */
|
|
5
|
|
6 #ifdef __SIZEOF_INT128__
|
|
7 __int128
|
|
8 f1 (int a, long long b)
|
|
9 {
|
|
10 __int128 f = 123 + a;
|
|
11 __int128 g = 123 + b;
|
|
12 return f - g;
|
|
13 }
|
|
14 #endif
|
|
15
|
|
16 signed char
|
|
17 f2 (int a, long long b)
|
|
18 {
|
|
19 signed char f = 123 + a;
|
|
20 signed char g = 123 + b;
|
|
21 return f - g;
|
|
22 }
|
|
23
|
|
24 signed char
|
|
25 f3 (unsigned int a, unsigned long long b)
|
|
26 {
|
|
27 signed char f = 123 + a;
|
|
28 signed char g = 123 + b;
|
|
29 return f - g;
|
|
30 }
|
|
31
|
|
32 unsigned char
|
|
33 f4 (unsigned int a, unsigned long long b)
|
|
34 {
|
|
35 unsigned char f = 123 + a;
|
|
36 unsigned char g = 123 + b;
|
|
37 return f - g;
|
|
38 }
|
|
39
|
|
40 /* This isn't optimized yet. */
|
|
41 #if 0
|
|
42 long long
|
|
43 f5 (int a)
|
|
44 {
|
|
45 long long f = 123 + a;
|
|
46 long long g = 123;
|
|
47 return f - g;
|
|
48 }
|
|
49 #endif
|
|
50
|
|
51 signed char
|
|
52 f6 (long long a)
|
|
53 {
|
|
54 signed char f = 123 + a;
|
|
55 signed char g = 123;
|
|
56 return f - g;
|
|
57 }
|
|
58
|
|
59 signed char
|
|
60 f7 (unsigned int a)
|
|
61 {
|
|
62 signed char f = 123 + a;
|
|
63 signed char g = 123;
|
|
64 return f - g;
|
|
65 }
|
|
66
|
|
67 unsigned char
|
|
68 f8 (unsigned long int a)
|
|
69 {
|
|
70 unsigned char f = 123 + a;
|
|
71 unsigned char g = 123;
|
|
72 return f - g;
|
|
73 }
|
|
74
|
|
75 long long
|
|
76 f9 (int a)
|
|
77 {
|
|
78 long long f = 123;
|
|
79 long long g = 123 + a;
|
|
80 return f - g;
|
|
81 }
|
|
82
|
|
83 signed char
|
|
84 f10 (long long a)
|
|
85 {
|
|
86 signed char f = 123;
|
|
87 signed char g = 123 + a;
|
|
88 return f - g;
|
|
89 }
|
|
90
|
|
91 signed char
|
|
92 f11 (unsigned int a)
|
|
93 {
|
|
94 signed char f = 123;
|
|
95 signed char g = 123 + a;
|
|
96 return f - g;
|
|
97 }
|
|
98
|
|
99 unsigned char
|
|
100 f12 (unsigned long int a)
|
|
101 {
|
|
102 unsigned char f = 123;
|
|
103 unsigned char g = 123 + a;
|
|
104 return f - g;
|
|
105 }
|