summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2018-04-01 21:04:30 +0000
committerJohn McCall <rjmccall@apple.com>2018-04-01 21:04:30 +0000
commit4fcd9ef6736ebc9bd1cd2c7192579c469a54b958 (patch)
tree9a32b0881bf884f8d29c23124cd8c3a60319ff15 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parentba8033be4d422fea1a4117238038197f8db56469 (diff)
downloadbcm5719-llvm-4fcd9ef6736ebc9bd1cd2c7192579c469a54b958.tar.gz
bcm5719-llvm-4fcd9ef6736ebc9bd1cd2c7192579c469a54b958.zip
Fix a major swiftcall ABI bug with trivial C++ class types.
The problem with the previous logic was that there might not be any explicit copy/move constructor declarations, e.g. if the type is trivial and we've never type-checked a copy of it. Relying on Sema's computation seems much more reliable. Also, I believe Richard's recommendation is exactly the rule we use now on the Itanium ABI, modulo the trivial_abi attribute (which this change of course fixes our handling of in Swift). This does mean that we have a less portable rule for deciding indirectness for swiftcall. I would prefer it if we just applied the Itanium rule universally under swiftcall, but in the meantime, I need to fix this bug. This only arises when defining functions with class-type arguments in C++, as we do in the Swift runtime. It doesn't affect normal Swift operation because we don't import code as C++. llvm-svn: 328942
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud