[libcxx-commits] [PATCH] D58945: Fix ABI compatibility of `<stdexcept>` with VCRuntime.

Eric Fiselier via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Mar 4 17:50:37 PST 2019


EricWF created this revision.
EricWF added reviewers: thomasanderson, ldionne.
Herald added a subscriber: jdoerfert.
EricWF added a parent revision: D58942: Make VCRuntime ABI configuration a first-class option..

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.


Repository:
  rCXX libc++

https://reviews.llvm.org/D58945

Files:
  include/stdexcept
  src/stdexcept.cpp
  src/support/runtime/stdexcept_default.ipp
  src/support/runtime/stdexcept_vcruntime.ipp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58945.189248.patch
Type: text/x-patch
Size: 9225 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190305/f46dc6d3/attachment.bin>


More information about the libcxx-commits mailing list