Go to file
Richard Smith 600adef31b PR33924: merge local declarations that have linkage of some kind within
merged function definitions; also merge functions with deduced return
types.

This seems like two independent fixes, but unfortunately they are hard
to separate because it's challenging to reliably test either one of them
without also testing the other.

A complication arises with deduced return type support: we need the type
of the function in order to know how to merge it, but we can't load the
actual type of the function because it might reference an entity
declared within the function (and we need to have already merged the
function to correctly merge that entity, which we would need to do to
determine if the function types match). So we instead compare the
declared function type when merging functions, and defer loading the
actual type of a function with a deduced type until we've finished
loading and merging the function.

This reverts r336175, reinstating r336021, with one change (for PR38015):
we look at the TypeSourceInfo of the first-so-far declaration of each
function when considering whether to merge two functions. This works
around a problem where the calling convention in the TypeSourceInfo for
subsequent redeclarations may not match if it was implicitly adjusted.

llvm-svn: 336240
2018-07-04 02:25:38 +00:00
clang PR33924: merge local declarations that have linkage of some kind within 2018-07-04 02:25:38 +00:00
clang-tools-extra [clangd] Replace UniqueFunction with llvm::unique_function. 2018-07-03 20:59:33 +00:00
compiler-rt [libFuzzer] [NFC] Inline static variable to avoid the linker warning. 2018-07-04 00:37:45 +00:00
debuginfo-tests [debuginfo-tests] Always use the system python to invoke llgdb.py. 2018-06-10 19:38:26 +00:00
libclc atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics 2018-06-21 19:27:39 +00:00
libcxx [libc++] Install the missing header __errc 2018-07-03 04:01:44 +00:00
libcxxabi Revert r336159, r336157. Some bots failed on qualified std::max_align_t, and other on unqualified max_align_t. 2018-07-03 01:30:53 +00:00
libunwind Introduce a separate preprocessor macro, _LIBUNWIND_USE_DLADDR, for directly controlling a dependency on dladdr(). This will allow us to use libunwind without adding a libdl dependency. 2018-06-29 20:41:50 +00:00
lld [ELF][MIPS] Use llvm-mc to generate test case input file. NFC 2018-07-03 14:39:27 +00:00
lldb Ammend "Fix MSVC2015 compilation failure after r336206 patch". 2018-07-03 22:51:01 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [Support] Remove SaveOr which is no longer used 2018-07-03 23:31:19 +00:00
openmp [OMPT] Use alloca() to force availability of frame pointer 2018-07-02 09:13:38 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly Fix for r336080: Missing colon in REQUIRES line 2018-07-02 08:36:49 +00:00
README.md

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.