transpile: Rework is_va_list for better accuracy
#1439
+104
−65
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
va_starttype mismatch #1353.This reworks the implementation of
is_va_list, so that it is more accurate (less false positives/negatives). It's split into two subfunctions, one that detectsva_listbased on the__builtin_va_listtypedef, and the other that detects based on the architecture-specific struct definition. Both methods have situations in which they don't work, so they are used together.This has been confirmed to work on:
MacOS aarch64 is still failing if I enable it, because things like
va_startseem to be unimplemented. Testing for Linux aarch64 will depend on #1283.