diff options
| author | bors <bors@rust-lang.org> | 2017-04-06 06:07:42 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-04-06 06:07:42 +0000 |
| commit | e5e92753cc3e12c3c468b6badaf340fe4443145c (patch) | |
| tree | ad85ffcb0203d3ff2468ce31afb4ef0cd03759f2 /src/test/codegen | |
| parent | 1a9b382168cbf405589fbba7215ace700c067879 (diff) | |
| parent | 89b364d687b7a3d16fb9553f7b5b0c034c406d91 (diff) | |
| download | rust-e5e92753cc3e12c3c468b6badaf340fe4443145c.tar.gz rust-e5e92753cc3e12c3c468b6badaf340fe4443145c.zip | |
Auto merge of #41102 - frewsxcv:rollup, r=frewsxcv
Rollup of 5 pull requests - Successful merges: #40908, #41011, #41026, #41037, #41050 - Failed merges:
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/personality_lifetimes.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/codegen/personality_lifetimes.rs b/src/test/codegen/personality_lifetimes.rs new file mode 100644 index 00000000000..e0de64b26df --- /dev/null +++ b/src/test/codegen/personality_lifetimes.rs @@ -0,0 +1,41 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-msvc + +// compile-flags: -O -C no-prepopulate-passes + +#![crate_type="lib"] + +struct S; + +impl Drop for S { + fn drop(&mut self) { + } +} + +fn might_unwind() { +} + +// CHECK-LABEL: @test +#[no_mangle] +pub fn test() { + let _s = S; + // Check that the personality slot alloca gets a lifetime start in each cleanup block, not just + // in the first one. + // CHECK-LABEL: cleanup: + // CHECK: bitcast{{.*}}personalityslot + // CHECK-NEXT: call void @llvm.lifetime.start + // CHECK-LABEL: cleanup1: + // CHECK: bitcast{{.*}}personalityslot + // CHECK-NEXT: call void @llvm.lifetime.start + might_unwind(); + might_unwind(); +} |
