File tree Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -152,6 +152,7 @@ peep(void)
152
152
case ALEAQ :
153
153
if (regtyp (& p -> to ))
154
154
if (p -> from .sym != S )
155
+ if (p -> from .index == D_NONE || p -> from .index == D_CONST )
155
156
conprop (r );
156
157
break ;
157
158
Original file line number Diff line number Diff line change @@ -145,6 +145,7 @@ peep(void)
145
145
case ALEAL :
146
146
if (regtyp (& p -> to ))
147
147
if (p -> from .sym != S )
148
+ if (p -> from .index == D_NONE || p -> from .index == D_CONST )
148
149
conprop (r );
149
150
break ;
150
151
Original file line number Diff line number Diff line change
1
+ // run
2
+
3
+ // Copyright 2013 The Go Authors. All rights reserved.
4
+ // Use of this source code is governed by a BSD-style
5
+ // license that can be found in the LICENSE file.
6
+
7
+ // issue 5809: 6g and 8g attempted to constant propagate indexed LEA
8
+
9
+ package main
10
+
11
+ import "fmt"
12
+
13
+ func main () {
14
+ const d16 = "0123456789ABCDEF"
15
+ k := 0x1234
16
+ var x [4 ]byte
17
+
18
+ x [0 ] = d16 [k >> 12 & 0xf ]
19
+ x [1 ] = d16 [k >> 8 & 0xf ]
20
+ x [2 ] = d16 [k >> 4 & 0xf ]
21
+ x [3 ] = d16 [k & 0xf ]
22
+
23
+ if x != [4 ]byte {'1' ,'2' ,'3' ,'4' } {
24
+ fmt .Println (x )
25
+ panic ("x != [4]byte{'1','2','3','4'}" )
26
+ }
27
+ }
You can’t perform that action at this time.
0 commit comments