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

Compiler Crashes when trying to create a label in inline assembler with macros. #53787

Closed
FabianB1998 opened this Issue Aug 29, 2018 · 9 comments

Comments

Projects
None yet
4 participants
@FabianB1998
Copy link

FabianB1998 commented Aug 29, 2018

Compiler Crashes when trying to create a label in inline assembler with macros. I am not sure if my could would work, but I am pretty sure it should not crash the compiler.

I tried this code: https://pastebin.com/pxCPeQnt

https://pastebin.com/WK4ydW8i
This does not crash, it seems it is somehow relating to the input formatting

I expected to see this happen: Generate a code sample with the given id
Instead, this happened: Compiler crashes

rustc --version --verbose:

rustc 1.30.0-nightly (73c7873 2018-08-05)
binary: rustc
commit-hash: 73c7873
commit-date: 2018-08-05
host: x86_64-pc-windows-msvc
release: 1.30.0-nightly
LLVM version: 7.0

Backtrace:
https://hastebin.com/xeyokeriqo.rb or https://pastebin.com/gDAvd4wQ
(Github keeps messing with the windows formatting)

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Aug 29, 2018

playground:

error: internal compiler error: librustc_codegen_llvm/mir/operand.rs:145: not immediate: OperandRef(Pair(([0 x i8]*:[0 x i8]* bitcast (<{ [9 x i8] }>* @1 to [0 x i8]*)), (i64:i64 9)) @ TyLayout { ty: &str, details: LayoutDetails { variants: Single { index: 0 }, fields: Arbitrary { offsets: [Size { raw: 0 }, Size { raw: 8 }], memory_index: [0, 1] }, abi: ScalarPair(Scalar { value: Pointer, valid_range: 1..=18446744073709551615 }, Scalar { value: Int(I64, false), valid_range: 0..=18446744073709551615 }), align: Align { abi_pow2: 3, pref_pow2: 3 }, size: Size { raw: 16 } } })

thread 'main' panicked at 'Box<Any>', librustc_errors/lib.rs:587:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: aborting due to previous error
@levex

This comment has been minimized.

Copy link
Contributor

levex commented Oct 20, 2018

Fixed by #54747, no longer reproduces on the playground by @estebank . Also, the span will be improved by #55087. Thanks!

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Oct 22, 2018

@levex could you add a test for this repro case? The only thing left to close this ticket is a repro test in the repo to avoid regressions.

@levex

This comment has been minimized.

Copy link
Contributor

levex commented Oct 23, 2018

@estebank sure i'll take this. ETA this week.

@AB1908

This comment has been minimized.

Copy link

AB1908 commented Jan 15, 2019

@levex could you add a test for this repro case? The only thing left to close this ticket is a repro test in the repo to avoid regressions.

@estebank: If I RTFMed correctly, I think the test should be a compile-fail type which should be added according to the test adding guide. Is this correct?

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Jan 15, 2019

@AB1908 almost, we're phasing compile-fail away, being subsumed by ui tests. You can create .stderr files for your new tests using ./x.py test src/test/ui --stage1 --bless.

@AB1908

This comment has been minimized.

Copy link

AB1908 commented Jan 15, 2019

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Jan 15, 2019

So do I go ahead and create a regular test and then use x.py?

Correct. That will compile the compiler, run the tests and update the .stderr files that the test suite compares against. Then the tests get run again to compare the json output against the comments (like //^ ERROR error desc).

Also, how was I supposed to find out about the phasing out of compile-fail?

@AB1908 I think there hasn't been a hard policy announced, but that's the direction we're going in.

https://rust-lang.github.io/rustc-guide/tests/adding.html#what-kind-of-test-should-i-add
#53353
#44844

AB1908 pushed a commit to AB1908/rust that referenced this issue Jan 16, 2019

@AB1908

This comment has been minimized.

Copy link

AB1908 commented Jan 16, 2019

I think that should do it.

Centril added a commit to Centril/rust that referenced this issue Jan 18, 2019

bors added a commit that referenced this issue Jan 18, 2019

Auto merge of #57747 - Centril:rollup, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #57107 (Add a regression test for mutating a non-mut #[thread_local])
 - #57132 (Document that `-C opt-level=0` implies `-C debug-assertions`.)
 - #57212 (docs(rustc): Link to the book's source in rustc)
 - #57302 (Fix unused_assignments false positive)
 - #57350 (Better error note on unimplemented Index trait for string)
 - #57635 (use structured macro and path resolve suggestions)
 - #57650 (librustc_metadata: Pass a default value when unwrapping a span)
 - #57657 (Add regression test to close #53787)
 - #57658 (Two HIR tweaks)
 - #57720 (Fix suggestions given mulitple bad lifetimes)
 - #57725 (Use structured suggestion to surround struct literal with parenthesis)

Failed merges:

r? @ghost

@bors bors closed this in #57657 Jan 19, 2019

VardhanThigle pushed a commit to jethrogb/rust that referenced this issue Jan 31, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.