-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
naked_functions: invalid instruction mnemonic <function name> on an .endef line #138320
Labels
A-naked
Area: `#[naked]`, prologue and epilogue-free, functions, https://git.io/vAzzS
C-bug
Category: This is a bug.
F-naked_functions
`#![feature(naked_functions)]`
O-windows
Operating system: Windows
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Comments
cc @folkertdev in case you have any clues / notice anything obviously wrong |
I can reproduce this https://godbolt.org/z/b398adPWh. The fix is simple, clearly the Thanks for reporting! |
@rustbot labels: +T-compiler -E-needs-mcve -needs-triage |
jieyouxu
added a commit
to jieyouxu/rust
that referenced
this issue
Mar 12, 2025
…, r=ChrisDenton naked functions: on windows emit `.endef` without the symbol name tracking issue: rust-lang#90957 fixes rust-lang#138320 The `.endef` directive does not take the name as an argument. Apparently the LLVM x86_64 parser does accept this, but on i686 it's rejected. In general `i686` does some special name mangling stuff, so it's good to include it in the naked function tests. r? `@ChrisDenton` (because windows)
jieyouxu
added a commit
to jieyouxu/rust
that referenced
this issue
Mar 12, 2025
…, r=ChrisDenton naked functions: on windows emit `.endef` without the symbol name tracking issue: rust-lang#90957 fixes rust-lang#138320 The `.endef` directive does not take the name as an argument. Apparently the LLVM x86_64 parser does accept this, but on i686 it's rejected. In general `i686` does some special name mangling stuff, so it's good to include it in the naked function tests. r? ``@ChrisDenton`` (because windows)
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this issue
Mar 13, 2025
…, r=ChrisDenton naked functions: on windows emit `.endef` without the symbol name tracking issue: rust-lang#90957 fixes rust-lang#138320 The `.endef` directive does not take the name as an argument. Apparently the LLVM x86_64 parser does accept this, but on i686 it's rejected. In general `i686` does some special name mangling stuff, so it's good to include it in the naked function tests. r? ```@ChrisDenton``` (because windows)
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this issue
Mar 13, 2025
Rollup merge of rust-lang#138346 - folkertdev:naked-asm-windows-endef, r=ChrisDenton naked functions: on windows emit `.endef` without the symbol name tracking issue: rust-lang#90957 fixes rust-lang#138320 The `.endef` directive does not take the name as an argument. Apparently the LLVM x86_64 parser does accept this, but on i686 it's rejected. In general `i686` does some special name mangling stuff, so it's good to include it in the naked function tests. r? ````@ChrisDenton```` (because windows)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-naked
Area: `#[naked]`, prologue and epilogue-free, functions, https://git.io/vAzzS
C-bug
Category: This is a bug.
F-naked_functions
`#![feature(naked_functions)]`
O-windows
Operating system: Windows
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
On nightly-2024-12-13 and any later version, I'm seeing compile errors in my project. I do not get these errors on previous nightlies. My project only builds for Windows 32-bit (and requires nightly Rust), but I'm seeing this error both on native MSVC and when cross-compiling on Linux with the i686-pc-windows-gnu target. The error message in question looks like this:
No additional information is printed with
RUST_BACKTRACE=1
.This error occurs for the following functions on debug and release builds (listing manged function names, links point to relevant source code):
And for the following functions, only on release builds:
All of the above are naked functions. The project contains many other naked functions; I don't know whether these are special or whether it just didn't get to any others. I've tried a blank project with just one naked function, and that compiles without issue.
The date and error message seem to point to #128004 (.endef is generated here), but I'm not familiar enough with the internals to identify what's wrong here.
The issue can be reproduced by cloning https://github.com/GM82Project/gm82save and running
cargo build
(with or without--release
, specifying--target=i686-pc-windows-gnu
if necessary). There's no unusual dependencies.The text was updated successfully, but these errors were encountered: