File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ #![ feature( never_type) ]
2
+
3
+ pub enum Void { }
4
+
5
+ #[ no_mangle]
6
+ pub fn process_never ( input : * const !) {
7
+ let _input = unsafe { & * input } ;
8
+ }
9
+
10
+ #[ no_mangle]
11
+ pub fn process_void ( input : * const Void ) {
12
+ let _input = unsafe { & * input } ;
13
+ // In the future, this should end with `unreachable`, but we currently only do
14
+ // unreachability analysis for `!`.
15
+ }
16
+
17
+ fn main ( ) { }
18
+
19
+ // END RUST SOURCE
20
+ //
21
+ // START rustc.process_never.SimplifyLocals.after.mir
22
+ // bb0: {
23
+ // StorageLive(_2);
24
+ // _2 = &(*_1);
25
+ // StorageDead(_2);
26
+ // unreachable;
27
+ // }
28
+ // END rustc.process_never.SimplifyLocals.after.mir
29
+ //
30
+ // START rustc.process_void.SimplifyLocals.after.mir
31
+ // bb0: {
32
+ // StorageLive(_2);
33
+ // _2 = &(*_1);
34
+ // StorageDead(_2);
35
+ // return;
36
+ // }
37
+ // END rustc.process_void.SimplifyLocals.after.mir
You can’t perform that action at this time.
0 commit comments