[libcxx-commits] [PATCH] D58942: Make VCRuntime ABI configuration a first-class option.

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


EricWF created this revision.
EricWF added reviewers: thomasanderson, ldionne, smeenai.
Herald added subscribers: libcxx-commits, jdoerfert.

On Windows we currently provide two separate ABI configurations. One which defers to `vcruntime` to provide the C++ runtime and another which doesn't.
Using `vcruntime` allows interoperability which programs compiled against the MSVC STL, and should be preferred whenever possible.

When deferring to `vcruntime` much of the ABI we provide changes. Including the layout of `<stdexcept>` types, their vtables, and how the linkage of their members.

This patch introduces the `_LIBCPP_ABI_VCRUNTIME` macro to denote this configuration. It also cleans up the existing configuration for using `vcruntime`.

This cleanup lays the groundwork for fixing a number of ABI and interoperability bugs in  `<stdexcept>`.


Repository:
  rCXX libc++

https://reviews.llvm.org/D58942

Files:
  include/__config
  include/exception
  include/new
  include/typeinfo
  src/new.cpp
  src/stdexcept.cpp
  src/support/runtime/exception_msvc.ipp
  src/typeinfo.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58942.189238.patch
Type: text/x-patch
Size: 7323 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190305/380ac05f/attachment.bin>


More information about the libcxx-commits mailing list