]> granicus.if.org Git - clang/commit
This patch addresses an incompatibility relative to the 64-bit PowerPC
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Tue, 27 Nov 2012 02:46:43 +0000 (02:46 +0000)
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>
Tue, 27 Nov 2012 02:46:43 +0000 (02:46 +0000)
commitc9715fc7c329c85e0b7aa0884c9209fa1fe5b819
treee6e30eb5d0c69e4eba75ac316ddf6f3c623ebc73
parent3fa3c44d624d2df9ef2649ca1a7efa97d81b36d8
This patch addresses an incompatibility relative to the 64-bit PowerPC
ELF ABI.

Complex values are to be passed in registers as though the real and
imaginary parts were passed as separate parameters.  Prior to this
patch, complex values were passed as byval aggregates.  It turns out
that specifying getDirect() for all complex types when classifying the
argument type results in the desired behavior.

The new Clang test case verifies that the correct LLVM IR is generated
for caller and callee for each of the underlying types for _Complex.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168673 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TargetInfo.cpp
test/CodeGen/ppc64-complex-parms.c [new file with mode: 0644]