Commit 0537fef
committed
[SILCombine] Bail load[copy](uteda) if move-only.
The pass rewrites `unchecked_take_enum_data_addr` whose uses are all
loads as loads--with the same ownership--of the base followed by
`unchecked_enum_data`s. If the base is noncopyable and any of the loads
are `load [copy]`, performing this transformation would result in a
copy of that noncopyable base, which is invalid. So bail if the base is
noncopyable and any of the loads are `load [copy]`s.
rdar://1565438551 parent 439afd6 commit 0537fef
File tree
2 files changed
+59
-0
lines changed- lib/SILOptimizer/SILCombiner
- test/SILOptimizer
2 files changed
+59
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1118 | 1118 | | |
1119 | 1119 | | |
1120 | 1120 | | |
| 1121 | + | |
1121 | 1122 | | |
1122 | 1123 | | |
1123 | 1124 | | |
1124 | 1125 | | |
1125 | 1126 | | |
1126 | 1127 | | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
1127 | 1132 | | |
1128 | 1133 | | |
1129 | 1134 | | |
| |||
1166 | 1171 | | |
1167 | 1172 | | |
1168 | 1173 | | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
1169 | 1179 | | |
1170 | 1180 | | |
1171 | 1181 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
105 | 113 | | |
106 | 114 | | |
107 | 115 | | |
| |||
5530 | 5538 | | |
5531 | 5539 | | |
5532 | 5540 | | |
| 5541 | + | |
| 5542 | + | |
| 5543 | + | |
| 5544 | + | |
| 5545 | + | |
| 5546 | + | |
| 5547 | + | |
| 5548 | + | |
| 5549 | + | |
| 5550 | + | |
| 5551 | + | |
| 5552 | + | |
| 5553 | + | |
| 5554 | + | |
| 5555 | + | |
| 5556 | + | |
| 5557 | + | |
| 5558 | + | |
| 5559 | + | |
| 5560 | + | |
| 5561 | + | |
| 5562 | + | |
| 5563 | + | |
| 5564 | + | |
| 5565 | + | |
| 5566 | + | |
| 5567 | + | |
| 5568 | + | |
| 5569 | + | |
| 5570 | + | |
| 5571 | + | |
| 5572 | + | |
| 5573 | + | |
| 5574 | + | |
| 5575 | + | |
| 5576 | + | |
| 5577 | + | |
| 5578 | + | |
| 5579 | + | |
| 5580 | + | |
| 5581 | + | |
0 commit comments