1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 // check that we clear the "ADT master drop flag" even when there are
12 // no fields to be dropped.
19 // older versions of rustc used to not clear the
20 // drop flag for `e` in this path.
25 fn cond() -> bool { false }
48 // let mut _8: bool; // drop flag for `e`
51 // let mut _11: isize;
52 // let mut _12: isize;
60 // _2 = const cond() -> [return: bb3, unwind: bb2];
72 // switchInt(_2) -> [0u8: bb5, otherwise: bb4];
78 // _5 = K::{{constructor}};
99 // _7 = discriminant(_1);
100 // switchInt(_7) -> [0isize: bb10, otherwise: bb9];
110 // _10 = const false;
111 // _6 = ((_1 as F).0: K);
148 // _8 = const false; // clear the drop flag - must always be reached
162 // drop(_1) -> [return: bb16, unwind: bb17];
170 // _11 = discriminant(_1);
171 // switchInt(_11) -> [0isize: bb16, otherwise: bb19];
175 // switchInt(_8) -> [0u8: bb16, otherwise: bb21];
179 // _12 = discriminant(_1);
180 // switchInt(_12) -> [0isize: bb18, otherwise: bb20];
184 // switchInt(_8) -> [0u8: bb17, otherwise: bb23];