diff options
author | Reid Kleckner <rnk@google.com> | 2023-09-13 16:29:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-13 16:29:11 -0700 |
commit | c8c075e8769a615451653b37e5426eb5d7a1d16c (patch) | |
tree | 1b2382fb3e67027a0c7de82d09dd4511a64b3acc /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 6385c1df919f237d4149fabf542a158f61010bf8 (diff) | |
download | llvm-c8c075e8769a615451653b37e5426eb5d7a1d16c.zip llvm-c8c075e8769a615451653b37e5426eb5d7a1d16c.tar.gz llvm-c8c075e8769a615451653b37e5426eb5d7a1d16c.tar.bz2 |
[MS] Follow up fix to pass aligned args to variadic x86_32 functions (#65692)
MSVC allows users to pass structures with required alignments greater
than 4 to variadic functions. It does not pass them indirectly to
correctly align them. Instead, it passes them directly with the usual 4
byte stack alignment.
This change implements the same logic in clang on the passing side. The
receiving side (va_arg) never implemented any of this indirect logic, so
it doesn't need to be updated.
This issue pre-existed, but @aaron.ballman noticed it when we started
passing structs containing aligned fields indirectly in D152752.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions