-
Notifications
You must be signed in to change notification settings - Fork 273
C library: fix use of va_list for AARCH64 #8366
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
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #8366 +/- ##
========================================
Coverage 78.36% 78.36%
========================================
Files 1726 1726
Lines 188382 188382
Branches 18240 18240
========================================
Hits 147629 147629
Misses 40753 40753 ☔ View full report in Codecov by Sentry. |
Is this something that ought to get an |
Are you suggesting this for improved code clarity or for other reasons? |
The fact that |
This is a fixup to "C model library: Support ARM64 va_list types" that 1) only changed only a subset of the code locations that required change and 2) did so with a crude workaround. Really, we need to abide by ARM's procedure call standard for ARM64, which mandates that `va_list` be a particular struct. See https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#definition-of-va-list and https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#the-va-arg-macro While at it, also add the necessary define for Visual Studio's support of ARM64. Fixes: diffblue#8357
20e7cef
to
40a3dbb
Compare
This is now fixed: we no longer use that workaround and instead have suitable code depending on arch ifdefs. |
This release addresses build failures on aarch64 (64-bit ARM) platforms (via PR diffblue#8366) and for some CMake configurations (via PR diffblue#8435). Users of loop invariants with dynamic frames have two changes to their user experience: 1) Users will no longer need to give unwinding specifications for `do { ... } while(0)` loops. 2) Loop invariants that are conjunctions will be turned into more fine-grained properties to ease debugging of loop invariants when they aren't successfully proved.
The fix from diffblue#8366 must not be used on macOS as that platform still uses `__builtin_va_list` instead of the ARM-mandated struct.
The fix from diffblue#8366 must not be used on macOS as that platform still uses `__builtin_va_list` instead of the ARM-mandated struct.
aarch64 ABI (section 7.1.4) mandates that va_list is a struct with particular members. The C library model was fixed in diffblue#8366, but we didn't yet implement the struct type support in goto conversion.
aarch64 ABI (section 7.1.4) mandates that va_list is a struct with particular members. The C library model was fixed in diffblue#8366, but we didn't yet implement the struct type support in goto conversion.
aarch64 ABI (section 7.1.4) mandates that va_list is a struct with particular members. The C library model was fixed in diffblue#8366, but we didn't yet implement the struct type support in goto conversion.
aarch64 ABI (section 7.1.4) mandates that va_list is a struct with particular members. The C library model was fixed in diffblue#8366, but we didn't yet implement the struct type support in goto conversion.
aarch64 ABI (section 7.1.4) mandates that va_list is a struct with particular members. The C library model was fixed in diffblue#8366, but we didn't yet implement the struct type support in goto conversion.
This is a fixup to "C model library: Support ARM64 va_list types" that
and
Really, we need to abide by ARM's procedure call standard for ARM64,
which mandates that
va_list
be a particular struct. Seehttps://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#definition-of-va-list
and
https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#the-va-arg-macro
While at it, also add the necessary define for Visual Studio's support
of ARM64.
Fixes: #8357