Go to file
John McCall 4fcd9ef673 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
2018-04-01 21:04:30 +00:00
clang Fix a major swiftcall ABI bug with trivial C++ class types. 2018-04-01 21:04:30 +00:00
clang-tools-extra [clang-tidy] Define __clang_analyzer__ macro for clang-tidy for compatibility with clang static analyzer 2018-04-01 11:51:57 +00:00
compiler-rt [ASan] Disable new ASan error reporting tests on various ARMs. 2018-03-30 00:03:36 +00:00
debuginfo-tests [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
libclc remainder: Port from amd builtins 2018-03-19 01:01:10 +00:00
libcxx fix typo in align_const_pair_U_V.pass.cpp 2018-03-29 03:44:01 +00:00
libcxxabi [demangler] Fix a bug in r328464 found by oss-fuzz. 2018-03-26 15:34:36 +00:00
libunwind [libunwind][MIPS]: Add support for unwinding in N32 processes. 2018-02-27 21:24:02 +00:00
lld [ELF] Simplify read32. NFC 2018-03-30 23:13:00 +00:00
lldb [lldb-dotest] Don't swallow error exit codes. 2018-03-30 19:24:08 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [include] Change std::sort to llvm::sort in response to r327219 2018-04-01 18:39:50 +00:00
openmp Minor cleanup in __kmp_atfork_child() 2018-03-30 19:55:11 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly Fix polly build after r328717 2018-03-28 19:56:26 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.