This is an archive of the discontinued LLVM Phabricator instance.

[libc++] Don't define exception destructors when using vcruntime
ClosedPublic

Authored by thomasanderson on Jan 29 2019, 4:16 PM.

Details

Summary

Exception destructors are provided by vcruntime. Fixes link errors like:

lld-link: error: duplicate symbol: "public: virtual __cdecl std::invalid_argument::~invalid_argument(void)" (??1invalid_argument@std@@UEAA@XZ) in stdexcept.obj and in libcpmt.lib(xthrow.obj)
lld-link: error: duplicate symbol: "public: virtual __cdecl std::length_error::~length_error(void)" (??1length_error@std@@UEAA@XZ) in stdexcept.obj and in libcpmt.lib(xthrow.obj)
lld-link: error: duplicate symbol: "public: virtual __cdecl std::out_of_range::~out_of_range(void)" (??1out_of_range@std@@UEAA@XZ) in stdexcept.obj and in libcpmt.lib(xthrow.obj)
lld-link: error: duplicate symbol: "public: virtual __cdecl std::overflow_error::~overflow_error(void)" (??1overflow_error@std@@UEAA@XZ) in stdexcept.obj and in libcpmt.lib(xthrow.obj)

Diff Detail

Event Timeline

thomasanderson created this revision.Jan 29 2019, 4:16 PM
EricWF accepted this revision.Jan 29 2019, 5:40 PM
This revision is now accepted and ready to land.Jan 29 2019, 5:40 PM
This revision was automatically updated to reflect the committed changes.

This differential skipped -commits list during review.