-
Notifications
You must be signed in to change notification settings - Fork 705
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
ARM asm fails with latest Clang, non-private labels cannot appear between .cfi_startproc / .cfi_endproc pairs #807
Comments
FWIW, the relevant commit in Clang was reverted in llvm/llvm-project@797b68c, and they're considering restricting the scope of when this is reported as an error in https://reviews.llvm.org/D155245#4657083. |
It also seems that cfi_startproc could be moved below the label as well, testing seems to indicate that it's fine and we can just work around it. TBH in all other code ive looked at using CFI directives (which isn't much), its always below the label FWIW. |
Due to the following LLVM change labels need to be outside .cfi_start/endprocs: https://reviews.llvm.org/D155245 Solution pointed out here is to move the label above .cfi_startproc: libffi/libffi#807
…he following LLVM change labels need to be outside .cfi_start/endprocs: https://reviews.llvm.org/D155245 Solution pointed out here is to move the label above .cfi_startproc: libffi/libffi#807
…code 16. Due to the following LLVM change labels need to be outside .cfi_start/endprocs: https://reviews.llvm.org/D155245 Solution pointed out here is to move the label above .cfi_startproc: libffi/libffi#807 (27e66e3f)
The ARM assembly, in particular https://github.com/libffi/libffi/blob/master/src/arm/sysv.S#L139-L213 (the sequence of
ffi_call_VFP
followed byffi_call_SYSV
) fails to compile for Windows/ARM with the very latest Clang (the latest nightly since today).The breaking change in Clang is this commit: https://reviews.llvm.org/D155245
Compiling fails with an error like this:
For unknown reasons, this error doesn't seem to trigger on Linux targets, as mentioned in https://reviews.llvm.org/D155245#4657075. However the overall sentiment seems to be that this construct, having one CFI region cover two global functions, is invalid.
The text was updated successfully, but these errors were encountered: