Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emit proper lifetime start intrinsics for personality slots #40908

Merged
merged 2 commits into from
Apr 6, 2017

Conversation

dotdash
Copy link
Contributor

@dotdash dotdash commented Mar 29, 2017

We currently only emit a single call to the lifetime start intrinsic
for the personality slot alloca. This happens because we create that
call at the time that we create the alloca, instead of creating it each
time we start using it. Because LLVM usually removes the alloca before
the lifetime intrinsics are even considered, this didn't cause any
problems yet, but we should fix this anyway.

We currently only emit a single call to the lifetime start intrinsic
for the personality slot alloca. This happens because we create that
call at the time that we create the alloca, instead of creating it each
time we start using it. Because LLVM usually removes the alloca before
the lifetime intrinsics are even considered, this didn't cause any
problems yet, but we should fix this anyway.
@rust-highfive
Copy link
Collaborator

r? @arielb1

(rust_highfive has picked a reviewer for you, use r? to override)

@arielb1
Copy link
Contributor

arielb1 commented Mar 30, 2017

@bors r+

@bors
Copy link
Contributor

bors commented Mar 30, 2017

📌 Commit 1eaa113 has been approved by arielb1

@bors
Copy link
Contributor

bors commented Mar 31, 2017

⌛ Testing commit 1eaa113 with merge d425d23...

@bors
Copy link
Contributor

bors commented Mar 31, 2017

💔 Test failed - status-appveyor

Exception handling on MSVC targets doesn't use personality slots.
@dotdash
Copy link
Contributor Author

dotdash commented Mar 31, 2017

Disabled the test on MSVC which doesn't use personality slots.

@arielb1
Copy link
Contributor

arielb1 commented Mar 31, 2017

@bors r+

@bors
Copy link
Contributor

bors commented Mar 31, 2017

📌 Commit 0ba7da3 has been approved by arielb1

@bors
Copy link
Contributor

bors commented Apr 1, 2017

⌛ Testing commit 0ba7da3 with merge 773d1ea...

@bors
Copy link
Contributor

bors commented Apr 1, 2017

💔 Test failed - status-travis

@alexcrichton
Copy link
Member

alexcrichton commented Apr 1, 2017 via email

bors added a commit that referenced this pull request Apr 1, 2017
Emit proper lifetime start intrinsics for personality slots

We currently only emit a single call to the lifetime start intrinsic
for the personality slot alloca. This happens because we create that
call at the time that we create the alloca, instead of creating it each
time we start using it. Because LLVM usually removes the alloca before
the lifetime intrinsics are even considered, this didn't cause any
problems yet, but we should fix this anyway.
@bors
Copy link
Contributor

bors commented Apr 1, 2017

⌛ Testing commit 0ba7da3 with merge 90e9d92...

@bors
Copy link
Contributor

bors commented Apr 1, 2017

💔 Test failed - status-appveyor

@alexcrichton
Copy link
Member

@bors: retry

@bors
Copy link
Contributor

bors commented Apr 2, 2017

⌛ Testing commit 0ba7da3 with merge c684503...

@bors
Copy link
Contributor

bors commented Apr 2, 2017

💔 Test failed - status-appveyor

@dotdash
Copy link
Contributor Author

dotdash commented Apr 3, 2017

Is that a spurious error? That build completed in the previous run.

@arielb1
Copy link
Contributor

arielb1 commented Apr 3, 2017

Let's see

@bors retry

@arielb1
Copy link
Contributor

arielb1 commented Apr 3, 2017

Failure is:

	test
running `C:\projects\rust\build\ct\cargo\target\debug\cargo test -v`
thread 'test_release_ignore_panic' panicked at '
Expected: execs
    but: exited with exit code: 3221225477
--- stdout
--- stderr
   Compiling a v0.0.1 (file:///C:/projects/rust/build/ct/cargo/target/cit/t53/foo/a)
     Running `rustc --crate-name a a\src\lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=0844ace4ff28f02a -C extra-filename=-0844ace4ff28f02a --out-dir C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps -L dependency=C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps`
   Compiling foo v0.0.1 (file:///C:/projects/rust/build/ct/cargo/target/cit/t53/foo)
     Running `rustc --crate-name foo src\lib.rs --emit=dep-info,link -C debuginfo=2 --test -C metadata=0a91976aa53e67d4 -C extra-filename=-0a91976aa53e67d4 --out-dir C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps -L dependency=C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps --extern a=C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps\liba-0844ace4ff28f02a.rlib`
     Running `rustc --crate-name foo src\lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=350a25faded805d4 -C extra-filename=-350a25faded805d4 --out-dir C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps -L dependency=C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps --extern a=C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps\liba-0844ace4ff28f02a.rlib`
    Finished dev [unoptimized + debuginfo] target(s) in 0.64 secs
     Running `C:\projects\rust\build\ct\cargo\target\cit\t53\foo\target\debug\deps\foo-0a91976aa53e67d4.exe`
error: test failed
', C:\Users\appveyor\.cargo\registry\src\github.com-1ecc6299db9ec823\hamcrest-0.1.1\src\core.rs:31
note: Run with `RUST_BACKTRACE=1` for a backtrace.
failures:
    test_release_ignore_panic
test result: FAILED. 61 passed; 1 failed; 0 ignored; 0 measured

@bors
Copy link
Contributor

bors commented Apr 3, 2017

⌛ Testing commit 0ba7da3 with merge 9a388b8...

@bors
Copy link
Contributor

bors commented Apr 3, 2017

💔 Test failed - status-travis

@alexcrichton
Copy link
Member

alexcrichton commented Apr 3, 2017 via email

frewsxcv added a commit to frewsxcv/rust that referenced this pull request Apr 6, 2017
Emit proper lifetime start intrinsics for personality slots

We currently only emit a single call to the lifetime start intrinsic
for the personality slot alloca. This happens because we create that
call at the time that we create the alloca, instead of creating it each
time we start using it. Because LLVM usually removes the alloca before
the lifetime intrinsics are even considered, this didn't cause any
problems yet, but we should fix this anyway.
frewsxcv added a commit to frewsxcv/rust that referenced this pull request Apr 6, 2017
Emit proper lifetime start intrinsics for personality slots

We currently only emit a single call to the lifetime start intrinsic
for the personality slot alloca. This happens because we create that
call at the time that we create the alloca, instead of creating it each
time we start using it. Because LLVM usually removes the alloca before
the lifetime intrinsics are even considered, this didn't cause any
problems yet, but we should fix this anyway.
bors added a commit that referenced this pull request Apr 6, 2017
Rollup of 5 pull requests

- Successful merges: #40908, #41011, #41026, #41037, #41050
- Failed merges:
@bors
Copy link
Contributor

bors commented Apr 6, 2017

⌛ Testing commit 0ba7da3 with merge e5e9275...

@bors bors merged commit 0ba7da3 into rust-lang:master Apr 6, 2017
@dotdash dotdash deleted the pers_lt branch January 31, 2018 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants