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)
commit90b22c9de6bed50f9954ea154248a69ab6261d78
tree39c6a31c6e830b48c7d2e0583860853d5a3992d4
parenta333f3fba10338d303097885d26f4a8b6fd0ef8e
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.

llvm-svn: 168673
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/ppc64-complex-parms.c [new file with mode: 0644]