[all-commits] [llvm/llvm-project] 2c6a38: Re-land "[MS] Overhaul how clang passes overaligne...
Reid Kleckner via All-commits
all-commits at lists.llvm.org
Tue Feb 11 16:49:33 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 2c6a3896ab1de706389f27c921cf58084650f439
https://github.com/llvm/llvm-project/commit/2c6a3896ab1de706389f27c921cf58084650f439
Author: Reid Kleckner <rnk at google.com>
Date: 2020-02-11 (Tue, 11 Feb 2020)
Changed paths:
M clang/include/clang/CodeGen/CGFunctionInfo.h
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/TargetInfo.cpp
M clang/test/CodeGen/x86_32-arguments-win32.c
A clang/test/CodeGenCXX/inalloca-overaligned.cpp
A clang/test/CodeGenCXX/inalloca-vector.cpp
Log Message:
-----------
Re-land "[MS] Overhaul how clang passes overaligned args on x86_32"
This brings back 2af74e27ed7d0832cbdde9cb969aaca7a42e99f9 and reverts
eaabaf7e04fe98990a8177a3e053346395efde1c.
The changes were correct, the code that was broken contained an ODR
violation that assumed that these types are passed equivalently:
struct alignas(uint64_t) Wrapper { uint64_t P };
void f(uint64_t p);
void f(Wrapper p);
MSVC does not pass them the same way, and so clang-cl should not pass
them the same way either.
More information about the All-commits
mailing list