Open
Description
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 by ffi_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
[MC][AsmParser] Diagnose improperly nested .cfi frames
Compiling fails with an error like this:
../src/arm/sysv.S:156:37: error: non-private labels cannot appear between .cfi_startproc / .cfi_endproc pairs
.globl ffi_call_SYSV; ; .align 3; ; ffi_call_SYSV:
^
../src/arm/sysv.S:141:2: error: previous .cfi_startproc was here
.cfi_startproc
^
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.