This is an archive of the discontinued LLVM Phabricator instance.

[clang] Apply MS ABI details on __builtin_ms_va_list on non-windows platforms on x86_64
ClosedPublic

Authored by mstorsjo on Jun 7 2021, 12:50 PM.

Details

Summary

This fixes inconsistencies in the ms_abi.c testcase.

Also add a couple cases of missing double pointers in the windows part
of the testcase; the outcome of building that testcase on windows hasn't
changed, but the previous form of the test was imprecise (checking
for "%[[STRUCT_FOO]]*" when clang actually generates "%[[STRUCT_FOO]]**"),
which still used to match.

Ideally this would share code with the native Windows case, but
X86_64ABIInfo and WinX86_64ABIInfo aren't superclasses/subclasses of
each other so it's impractical, and the code to share currently only
consists of a couple lines.

Diff Detail

Event Timeline

mstorsjo created this revision.Jun 7 2021, 12:50 PM
mstorsjo requested review of this revision.Jun 7 2021, 12:50 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 7 2021, 12:50 PM
rnk accepted this revision.Jun 7 2021, 3:47 PM

lgtm

This revision is now accepted and ready to land.Jun 7 2021, 3:47 PM
This revision was landed with ongoing or failed builds.Jun 8 2021, 2:15 AM
This revision was automatically updated to reflect the committed changes.