Go to file
Eric Fiselier 2710d8e105 Fix ABI compatibility of `<stdexcept>` with VCRuntime.
Summary:
Currently, libc++'s `<stdexcept>` doesn't play nice with `vcruntime`. Specifically:

* `logic_error` and `runtime_error` have a different layout.
* libc++'s `logic_error` and `runtime_error` override `what()` but `vcruntime` does not.
*  `vcruntime` uses weak vtables for `<stdexcept>` types.
* libc++'s `<stdexcept>` constructors and assignment operators may have different manglings than `vcruntimes`.

This patch makes libc++'s declarations in `<stdexcept>` match those provided by MSVC's STL as closely as possible.
If MSVC doesn't declare a special member, then neither do we. This ensures that the implicit definitions have the same linkage, visibility, triviality, and noexcept-ness.







Reviewers: thomasanderson, ldionne, smeenai

Reviewed By: thomasanderson

Subscribers: jdoerfert, libcxx-commits

Differential Revision: https://reviews.llvm.org/D58945

llvm-svn: 355546
2019-03-06 20:31:57 +00:00
clang Revert "[IR][ARM] Add function pointer alignment to datalayout" 2019-03-06 19:17:18 +00:00
clang-tools-extra [clangd] Add Source to clangd::Diagnostic. 2019-03-06 10:51:38 +00:00
compiler-rt [NFC][TSan][libdispatch] Rename tsan_block_context_t -> block_context_t 2019-03-06 19:27:10 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
libcxx Fix ABI compatibility of `<stdexcept>` with VCRuntime. 2019-03-06 20:31:57 +00:00
libcxxabi [libc++abi] Specify unwind lib before other system libraries when linking 2019-03-01 22:55:15 +00:00
libunwind [CMake][libunwind] Define add_target_flags which is missing 2019-02-28 21:38:59 +00:00
lld [LLD][COFF] More detailed information for /failifmismatch 2019-03-06 20:18:38 +00:00
lldb Try again to fix OSX compilation failure. 2019-03-06 19:14:41 +00:00
llgo Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
llvm [AArch64] Improve FP16 instruction selection for vector round and vector conver from half instructions 2019-03-06 20:30:06 +00:00
openmp [build] Rename clang-headers to clang-resource-headers 2019-03-04 21:19:53 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly [opaque pointer types] Update calls to CreateCall to pass the function 2019-02-08 19:30:46 +00:00
pstl [pstl] Fix missing parallel policy guards 2019-03-01 01:26:35 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

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