]> git.proxmox.com Git - rustc.git/blame - src/test/mir-opt/deaggregator_test_multiple.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / test / mir-opt / deaggregator_test_multiple.rs
CommitLineData
476ff2be
SL
1// Copyright 2016 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.
4//
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.
10
11// Test that deaggregate fires more than once per block
12
13enum Foo {
14 A(i32),
15 B,
16}
17
18fn test(x: i32) -> [Foo; 2] {
19 [Foo::A(x), Foo::A(x)]
20}
21
abe05a73
XL
22fn main() {
23 // Make sure the function actually gets instantiated.
24 test(0);
25}
476ff2be
SL
26
27// END RUST SOURCE
abe05a73 28// START rustc.test.Deaggregator.before.mir
476ff2be 29// bb0: {
abe05a73
XL
30// ...
31// _3 = _1;
32// ...
33// _2 = Foo::A(_3,);
34// ...
35// _5 = _1;
36// _4 = Foo::A(_5,);
37// ...
38// _0 = [_2, _4];
39// ...
476ff2be
SL
40// return;
41// }
abe05a73
XL
42// END rustc.test.Deaggregator.before.mir
43// START rustc.test.Deaggregator.after.mir
476ff2be 44// bb0: {
abe05a73
XL
45// ...
46// _3 = _1;
47// ...
48// ((_2 as A).0: i32) = _3;
49// discriminant(_2) = 0;
50// ...
51// _5 = _1;
52// ((_4 as A).0: i32) = _5;
53// discriminant(_4) = 0;
54// ...
55// _0 = [_2, _4];
56// ...
476ff2be
SL
57// return;
58// }
abe05a73 59// END rustc.test.Deaggregator.after.mir