Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upLLVM assertion: Can only indirectify direct input operands! #29382
Comments
steveklabnik
added
I-ICE
A-inline-assembly
labels
Oct 26, 2015
This comment has been minimized.
This comment has been minimized.
|
Here is what clang generates for equivalent code, it seems to translate "m" and "=m" into "*m" and "=*m": call void asm "", "=*m"(i32* %2) #1, !srcloc !3Using the =*m constraint directly from rust is difficult because type checking treats it as an output even though the parameter is an input pointer value. |
Amanieu
referenced this issue
Nov 3, 2015
Merged
Allow indirect operands to be used as inputs for inline asm #29543
bors
added a commit
that referenced
this issue
Nov 4, 2015
Burgos
referenced this issue
Feb 6, 2016
Open
rustc segfaults while translating inline assembly to write memory location #31437
This comment has been minimized.
This comment has been minimized.
|
Still repros. |
brson
added
T-compiler
P-low
labels
Apr 11, 2017
This comment has been minimized.
This comment has been minimized.
|
playpen repro: https://is.gd/rUbnON |
This comment has been minimized.
This comment has been minimized.
|
@Amanieu By |
This comment has been minimized.
This comment has been minimized.
|
@eddyb yes |
This comment has been minimized.
This comment has been minimized.
|
@Amanieu We should update the compiler to treat |
Mark-Simulacrum
added
the
C-bug
label
Jul 22, 2017
This comment has been minimized.
This comment has been minimized.
|
Still a problem with |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Amanieu commentedOct 26, 2015
The following code triggers an LLVM assert:
One thing of note in the LLVM output is this line:
Note that the operand to the asm is left empty for some reason, which is probably wrong.