5
5
6
6
SECTIONS {
7
7
_start = .;
8
- plus = 1 + 2 + 3;
9
- minus = 5 - 1;
10
- div = 6 / 2;
11
- mod = 20 % 7;
12
- mul = 1 + 2 * 3;
13
- nospace = 1+2*6/3;
14
- braces = 1 + (2 + 3) * 4;
15
- and = 0xbb & 0xee;
16
- ternary1 = 1 ? 2 : 3 ? 4 : 5;
17
- ternary2 = 0 ? 1 : 2;
8
+ unary =!0 + !0;
9
+ negate =-1 - 1;
10
+ not =~0xffff + 4;
11
+ not_negate = -~5 + 1;
12
+ multiplicative = 20 / 2 % 7;
13
+ additive = 1 - 2 + -3 * -2;
14
+ shift = 2 << 5 >> 1 << 2;
18
15
less = 1 < 0 ? 1 : 2;
19
- lesseq = 1 <= 1 ? 1 : 2;
16
+ lesseq = 1<<0 <= 1>>0 ? 1 : 2;
20
17
greater = 0 > 1 ? 1 : 2;
21
18
greatereq = 1 >= 1 ? 1 : 2;
22
19
eq = 1 == 1 ? 1 : 2;
23
20
neq = 1 != 1 <= 1 ? 1 : 2;
24
- plusassign = 1;
21
+ and = 3 & 4 > 0;
22
+ or = 0xbb & 0xee | 1;
23
+ logicaland = (0 && 0) + (0&&1)*2 + (1&& 0)*4 + (1 &&1) *8;
24
+ logicaland2 = 1 & 0 && 1 | 1;
25
+ logicalor = (0 || 0) + (0||1)*2 + (1|| 0)*4 + (1 ||1) *8;
26
+ logicalor2 = 0 && 0 || 1 && 1;
27
+ ternary1 = 0 ? 1 : 2 & 6;
28
+ ternary2 = 1 ? 2 ? 3 : 4 : 5 ? 6 : 7;
29
+
30
+ plusassign =1;
25
31
plusassign += 2;
26
- unary = -1 + 3;
27
- lshift = 1 << 5;
28
- rshift = 0xff >> 3;
29
- precedence1 = 1 | 0xff & 1 << 1 + 1 * 2;
32
+ braces = 1 + (2 + 3) * 4;
33
+ precedence1 = 1|0xff&1/1<<1+1*2;
30
34
precedence2 = (1 | (0xff & (1 << (1 + (1 * 2)))));
31
35
maxpagesize = CONSTANT (MAXPAGESIZE);
32
36
commonpagesize = CONSTANT (COMMONPAGESIZE);
@@ -46,46 +50,41 @@ SECTIONS {
46
50
log2ceil100000000 = LOG2CEIL(0x100000000);
47
51
log2ceil100000001 = LOG2CEIL(0x100000001);
48
52
log2ceilmax = LOG2CEIL(0xffffffffffffffff);
49
- logicaland1 = 0 && 0;
50
- logicaland2 = 0 && 1;
51
- logicaland3 = 1 && 0;
52
- logicaland4 = 1 && 1;
53
- logicalor1 = 0 || 0;
54
- logicalor2 = 0 || 1;
55
- logicalor3 = 1 || 0;
56
- logicalor4 = 1 || 1;
57
53
}
58
54
59
- # CHECK: 00000000000006 A plus
60
- # CHECK-NEXT: 00000000000004 A minus
61
- # CHECK-NEXT: 00000000000003 A div
62
- # CHECK-NEXT: 00000000000006 A mod
63
- # CHECK-NEXT: 00000000000007 A mul
64
- # CHECK-NEXT: 00000000000005 A nospace
65
- # CHECK-NEXT: 00000000000015 A braces
66
- # CHECK-NEXT: 000000000000aa A and
67
- # CHECK-NEXT: 00000000000002 A ternary1
68
- # CHECK-NEXT: 00000000000002 A ternary2
69
- # CHECK-NEXT: 00000000000002 A less
70
- # CHECK-NEXT: 00000000000001 A lesseq
71
- # CHECK-NEXT: 00000000000002 A greater
72
- # CHECK-NEXT: 00000000000001 A greatereq
73
- # CHECK-NEXT: 00000000000001 A eq
74
- # CHECK-NEXT: 00000000000002 A neq
75
- # CHECK-NEXT: 00000000000003 A plusassign
76
- # CHECK-NEXT: 00000000000002 A unary
77
- # CHECK-NEXT: 00000000000020 A lshift
78
- # CHECK-NEXT: 0000000000001f A rshift
79
- # CHECK-NEXT: 00000000000009 A precedence1
80
- # CHECK-NEXT: 00000000000009 A precedence2
81
- # CHECK-NEXT: 00000000001000 A maxpagesize
82
- # CHECK-NEXT: 00000000001000 A commonpagesize
83
- # CHECK-NEXT: 0000000000ffff A datasegmentalign
84
- # CHECK-NEXT: 0000000000fff0 A datasegmentalign2
85
- # CHECK-NEXT: 0000000000ffe0 T minus_rel
86
- # CHECK-NEXT: 0000000000fff0 A minus_abs
87
- # CHECK-NEXT: 00000000000016 A max
88
- # CHECK-NEXT: 0000000000000b A min
55
+ # CHECK: 0000000000000002 A unary
56
+ # CHECK-NEXT: fffffffffffffffe A negate
57
+ # CHECK-NEXT: ffffffffffff0004 A not
58
+ # CHECK-NEXT: 0000000000000007 A not_negate
59
+ # CHECK-NEXT: 0000000000000003 A multiplicative
60
+ # CHECK-NEXT: 0000000000000005 A additive
61
+ # CHECK-NEXT: 0000000000000080 A shift
62
+ # CHECK-NEXT: 0000000000000002 A less
63
+ # CHECK-NEXT: 0000000000000001 A lesseq
64
+ # CHECK-NEXT: 0000000000000002 A greater
65
+ # CHECK-NEXT: 0000000000000001 A greatereq
66
+ # CHECK-NEXT: 0000000000000001 A eq
67
+ # CHECK-NEXT: 0000000000000002 A neq
68
+ # CHECK-NEXT: 0000000000000001 A and
69
+ # CHECK-NEXT: 00000000000000ab A or
70
+ # CHECK-NEXT: 0000000000000008 A logicaland
71
+ # CHECK-NEXT: 0000000000000000 A logicaland2
72
+ # CHECK-NEXT: 000000000000000e A logicalor
73
+ # CHECK-NEXT: 0000000000000001 A logicalor2
74
+ # CHECK-NEXT: 0000000000000002 A ternary1
75
+ # CHECK-NEXT: 0000000000000003 A ternary2
76
+ # CHECK-NEXT: 0000000000000003 A plusassign
77
+ # CHECK-NEXT: 0000000000000015 A braces
78
+ # CHECK-NEXT: 0000000000000009 A precedence1
79
+ # CHECK-NEXT: 0000000000000009 A precedence2
80
+ # CHECK-NEXT: 0000000000001000 A maxpagesize
81
+ # CHECK-NEXT: 0000000000001000 A commonpagesize
82
+ # CHECK-NEXT: 000000000000ffff A datasegmentalign
83
+ # CHECK-NEXT: 000000000000fff0 A datasegmentalign2
84
+ # CHECK-NEXT: 000000000000ffe0 T minus_rel
85
+ # CHECK-NEXT: 000000000000fff0 A minus_abs
86
+ # CHECK-NEXT: 0000000000000016 A max
87
+ # CHECK-NEXT: 000000000000000b A min
89
88
# CHECK-NEXT: 0000000000000000 A log2ceil0
90
89
# CHECK-NEXT: 0000000000000000 A log2ceil1
91
90
# CHECK-NEXT: 0000000000000001 A log2ceil2
@@ -94,14 +93,6 @@ SECTIONS {
94
93
# CHECK-NEXT: 0000000000000020 A log2ceil100000000
95
94
# CHECK-NEXT: 0000000000000021 A log2ceil100000001
96
95
# CHECK-NEXT: 0000000000000040 A log2ceilmax
97
- # CHECK-NEXT: 00000000000000 A logicaland1
98
- # CHECK-NEXT: 00000000000000 A logicaland2
99
- # CHECK-NEXT: 00000000000000 A logicaland3
100
- # CHECK-NEXT: 00000000000001 A logicaland4
101
- # CHECK-NEXT: 00000000000000 A logicalor1
102
- # CHECK-NEXT: 00000000000001 A logicalor2
103
- # CHECK-NEXT: 00000000000001 A logicalor3
104
- # CHECK-NEXT: 00000000000001 A logicalor4
105
96
106
97
## Mailformed number error.
107
98
# RUN: echo "SECTIONS { . = 0x12Q41; }" > %t.script
0 commit comments