Go to file
Richard Smith fda59e5851 Implement name mangling proposal for exception specifications from cxx-abi-dev 2016-10-11.
This has the following ABI impact:

 1) Functions whose parameter or return types are non-throwing function pointer
    types have different manglings in c++1z mode from prior modes. This is
    necessary because c++1z permits overloading on the noexceptness of function
    pointer parameter types. A warning is issued for cases that will change
    manglings in c++1z mode.

 2) Functions whose parameter or return types contain instantiation-dependent
    exception specifications change manglings in all modes. This is necessary
    to support overloading on / SFINAE in these exception specifications, which
    a careful reading of the standard indicates has essentially always been
    permitted.

Note that, in order to be affected by these changes, the code in question must
specify an exception specification on a function pointer/reference type that is
written syntactically within the declaration of another function. Such
declarations are very rare, and I have so far been unable to find any code
that would be affected by this. (Note that such things will probably become
more common in C++17, since it's a lot easier to get a noexcept function type
as a function parameter / return type there.)

This change does not affect the set of symbols produced by a build of clang,
libc++, or libc++abi.

llvm-svn: 285150
2016-10-26 01:05:54 +00:00
clang Implement name mangling proposal for exception specifications from cxx-abi-dev 2016-10-11. 2016-10-26 01:05:54 +00:00
clang-tools-extra include-fixer: Don't overwrite buffer changes 2016-10-25 11:31:22 +00:00
compiler-rt Remove a VS 2012 workaround, we require 2015 now. 2016-10-25 18:48:43 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Provide vstore_half helper to workaround clc restrictions 2016-09-21 20:15:55 +00:00
libcxx Fix nullptr tests 2016-10-25 20:45:17 +00:00
libcxxabi Get libc++abi building with LLVM_ENABLE_MODULES 2016-10-25 20:07:49 +00:00
libunwind [libunwind] Add support for Fuchsia 2016-10-23 21:48:47 +00:00
lld Use uint32_t for consistency. 2016-10-26 00:58:23 +00:00
lldb Fix a race condition between the "ephemeral watchpoint disabling" and commands the continue the process. 2016-10-25 20:34:32 +00:00
llgo [llgo] add llgo source path to LLVM_GO_PACKAGES 2016-07-27 03:01:00 +00:00
llvm [libFuzzer] simplify the code in TracePC::HandleTrace a bit more 2016-10-26 00:42:52 +00:00
openmp Fixed memory leak mistakenly introduced by https://reviews.llvm.org/D23115 2016-10-20 17:14:17 +00:00
parallel-libs [SE] Remove StreamExecutor 2016-10-25 20:38:08 +00:00
polly [ScopInfo] Fix: use raw source pointer. 2016-10-25 13:37:43 +00:00