You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rustc triggers a segmentation fault when compiling the following code. I have tested this on both linux and windows with the latest nightly compiler. It is not possible to compile core in debug mode for aarch64-unknown-none-softfloat because of this bug. Luckily, release mode works for both core and the following example.
I tried extracting the target spec and running with rustc lib.rs --edition=2018 --crate-type lib --target aarch64-sf.json.
The critical line is "features": "+strict-align,-neon,-fp-armv8",. Setting both +neon and +fp-armv8 makes the segfault disappear. Those two features are the only difference between aarch64-unknown-none-softfloat and aarch64-unknown-none.
llvm-ir
With #[no_mange], the llvm-ir I get is rustc lib.rs --edition=2018 --crate-type lib --target aarch64-unknown-none-softfloat --emit=llvm-ir :
Changing the return type of foo from bool to u8 makes the code compile fine. The only difference in llvm-ir is that the return type is changed from zeroext i1 to i8
Rustc triggers a segmentation fault when compiling the following code. I have tested this on both linux and windows with the latest nightly compiler. It is not possible to compile
core
in debug mode foraarch64-unknown-none-softfloat
because of this bug. Luckily, release mode works for bothcore
and the following example.Code
Another offending example that doesn't use recursion:
Error output
Critical features in
target-spec
rustc --print target-spec-json -Z unstable-options --target aarch64-unknown-none-softfloat > aarch64-sf.json
aarch64-sf.json
I tried extracting the target spec and running with
rustc lib.rs --edition=2018 --crate-type lib --target aarch64-sf.json
.The critical line is
"features": "+strict-align,-neon,-fp-armv8",
. Setting both+neon
and+fp-armv8
makes the segfault disappear. Those two features are the only difference betweenaarch64-unknown-none-softfloat
andaarch64-unknown-none
.llvm-ir
With
#[no_mange]
, the llvm-ir I get isrustc lib.rs --edition=2018 --crate-type lib --target aarch64-unknown-none-softfloat --emit=llvm-ir
:Changing the return type of
foo
frombool
tou8
makes the code compile fine. The only difference in llvm-ir is that the return type is changed fromzeroext i1
toi8
llvm-ir with `u8` return type
Backtrace
Running `gdb` gives the following backtrace:
Meta
rustc --version --verbose
:The text was updated successfully, but these errors were encountered: