Skip to content

tests: Test line number in debuginfo for diverging function calls #144034

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Enselic
Copy link
Member

@Enselic Enselic commented Jul 16, 2025

Closes #59558 which just E-needs-test.

The bug seems to have been fixed in nightly-2021-05-10:

for toolchain in nightly-2021-05-09 \
                 nightly-2021-05-10 \
                 1.88; do
    echo -e "\nWith $toolchain:"
    rustc +$toolchain tests/codegen/diverging-function-call-debuginfo.rs --emit llvm-ir -o /tmp/out.ll -g -Clto -Copt-level=0
    build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck --input-file /tmp/out.ll tests/codegen/diverging-function-call-debuginfo.rs --check-prefix=CHECK --dump-input-context 10 2>/dev/null && echo OK || echo FAIL
done
With nightly-2021-05-09:
FAIL

With nightly-2021-05-10:
OK

With 1.88:
OK

which gives the following list of candidate commits. Not clear which one it is exactly but it doesn't matter much since we can confirm that the test works. I have confirmed locally that with nightly-2021-05-09 we get line: 0 for the last call.

click to expand
$ git log ^881c1ac408d93bb7adaa3a51dabab9266e82eee8 ca82264ec7556a6011b9d3f1b2fd4c7cd0bc8ae2 --no-merges --oneline

f25aa57 Remove unused opt_span_warn function
ebbc949 Note why Handler::fatal is different from Sesssion::fatal
96509b4 Make Diagnostic::span_fatal unconditionally raise an error
e49f447 Remove some unnecessary uses of struct_span_fatal
955fdae Rename Parser::span_fatal_err -> Parser::span_err
4b7c8b0 Add #[track_caller] to FakeDefId::expect_real()
ba13225 Remove FakeDefId::expect_local()
020d83d Enable -W semicolon_in_expressions_from_macros in bootstrap
1b928ff Update LLVM submodule
c2b15a6 Support -C passes in NewPM
5519cbf Don't force -O1 with ThinLTO
7c4989a Drop -opt-bisect-limit=0 flag from test
db140de Explicitly register GCOV profiling pass as well
5ecbe7f Explicitly register instrprof pass
0318883 Make -Z new-llvm-pass-manager an Option
0367e24 Avoid predecessors having Drop impls

@rustbot
Copy link
Collaborator

rustbot commented Jul 16, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 16, 2025
@wesleywiser
Copy link
Member

Thanks @Enselic!

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Jul 16, 2025

📌 Commit dd48e56 has been approved by wesleywiser

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 16, 2025
fmease added a commit to fmease/rust that referenced this pull request Jul 17, 2025
…buginfo, r=wesleywiser

tests: Test line number in debuginfo for diverging function calls

Closes rust-lang#59558 which just [E-needs-test](rust-lang#59558 (comment)).

The bug seems to have been fixed in **nightly-2021-05-10**:

```sh
for toolchain in nightly-2021-05-09 \
                 nightly-2021-05-10 \
                 1.88; do
    echo -e "\nWith $toolchain:"
    rustc +$toolchain tests/codegen/diverging-function-call-debuginfo.rs --emit llvm-ir -o /tmp/out.ll -g -Clto -Copt-level=0
    build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck --input-file /tmp/out.ll tests/codegen/diverging-function-call-debuginfo.rs --check-prefix=CHECK --dump-input-context 10 2>/dev/null && echo OK || echo FAIL
done
```

```
With nightly-2021-05-09:
FAIL

With nightly-2021-05-10:
OK

With 1.88:
OK
```

which gives the following list of candidate commits. Not clear which one it is exactly but it doesn't matter much since we can confirm that the test works. I have confirmed locally that with **nightly-2021-05-09** we get `line: 0` for the last call.

<details>
<summary>click to expand</summary>

```
$ git log ^881c1ac408d93bb7adaa3a51dabab9266e82eee8 ca82264 --no-merges --oneline
```
f25aa57 Remove unused `opt_span_warn` function
ebbc949 Note why `Handler::fatal` is different from `Sesssion::fatal`
96509b4 Make `Diagnostic::span_fatal` unconditionally raise an error
e49f447 Remove some unnecessary uses of `struct_span_fatal`
955fdae Rename `Parser::span_fatal_err` -> `Parser::span_err`
4b7c8b0 Add `#[track_caller]` to `FakeDefId::expect_real()`
ba13225 Remove `FakeDefId::expect_local()`
020d83d Enable `-W semicolon_in_expressions_from_macros` in bootstrap
1b928ff Update LLVM submodule
c2b15a6 Support -C passes in NewPM
5519cbf Don't force -O1 with ThinLTO
7c4989a Drop -opt-bisect-limit=0 flag from test
db140de Explicitly register GCOV profiling pass as well
5ecbe7f Explicitly register instrprof pass
0318883 Make -Z new-llvm-pass-manager an Option<bool>
0367e24 Avoid predecessors having Drop impls

</details>
fmease added a commit to fmease/rust that referenced this pull request Jul 17, 2025
…buginfo, r=wesleywiser

tests: Test line number in debuginfo for diverging function calls

Closes rust-lang#59558 which just [E-needs-test](rust-lang#59558 (comment)).

The bug seems to have been fixed in **nightly-2021-05-10**:

```sh
for toolchain in nightly-2021-05-09 \
                 nightly-2021-05-10 \
                 1.88; do
    echo -e "\nWith $toolchain:"
    rustc +$toolchain tests/codegen/diverging-function-call-debuginfo.rs --emit llvm-ir -o /tmp/out.ll -g -Clto -Copt-level=0
    build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck --input-file /tmp/out.ll tests/codegen/diverging-function-call-debuginfo.rs --check-prefix=CHECK --dump-input-context 10 2>/dev/null && echo OK || echo FAIL
done
```

```
With nightly-2021-05-09:
FAIL

With nightly-2021-05-10:
OK

With 1.88:
OK
```

which gives the following list of candidate commits. Not clear which one it is exactly but it doesn't matter much since we can confirm that the test works. I have confirmed locally that with **nightly-2021-05-09** we get `line: 0` for the last call.

<details>
<summary>click to expand</summary>

```
$ git log ^881c1ac408d93bb7adaa3a51dabab9266e82eee8 ca82264 --no-merges --oneline
```
f25aa57 Remove unused `opt_span_warn` function
ebbc949 Note why `Handler::fatal` is different from `Sesssion::fatal`
96509b4 Make `Diagnostic::span_fatal` unconditionally raise an error
e49f447 Remove some unnecessary uses of `struct_span_fatal`
955fdae Rename `Parser::span_fatal_err` -> `Parser::span_err`
4b7c8b0 Add `#[track_caller]` to `FakeDefId::expect_real()`
ba13225 Remove `FakeDefId::expect_local()`
020d83d Enable `-W semicolon_in_expressions_from_macros` in bootstrap
1b928ff Update LLVM submodule
c2b15a6 Support -C passes in NewPM
5519cbf Don't force -O1 with ThinLTO
7c4989a Drop -opt-bisect-limit=0 flag from test
db140de Explicitly register GCOV profiling pass as well
5ecbe7f Explicitly register instrprof pass
0318883 Make -Z new-llvm-pass-manager an Option<bool>
0367e24 Avoid predecessors having Drop impls

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Missing line information for calls to diverging functions
5 participants