[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-07 Thread Eric Fiselier via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL302393: [libc++] Implement exception_ptr on Windows (authored by EricWF). Changed prior to commit: https://reviews.llvm.org/D32927?vs=98119&id=98120#toc Repository: rL LLVM https://reviews.llvm.org/

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 98119. EricWF added a comment. - Remove some missed XFAILS https://reviews.llvm.org/D32927 Files: include/exception lib/CMakeLists.txt src/exception.cpp src/support/runtime/exception_pointer_msvc.ipp test/libcxx/thread/futures/futures.promise/set_e

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-07 Thread Ben Craig via Phabricator via cfe-commits
bcraig added a comment. Getting the test suite green sooner rather than later seems like a good reason to temporarily pick a 1-3 year solution rather than a 5+ year solution. Also, as you mention, this isn't all throw away work, so it's still progress. So yeah, this is fine to go in as is. LG

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D32927#748119, @bcraig wrote: > libstdc++ and the Visual Studio C++ runtime have very different compatibility > expectations. I only meant to imply that linking to another standard library implementation hasn't caused major issues in the pas

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-06 Thread Ben Craig via Phabricator via cfe-commits
bcraig added a comment. libstdc++ and the Visual Studio C++ runtime have very different compatibility expectations. libstdc++ is generally bundled with the operating system. It maintains binary compatibility over very long stretches of time. In most systems, there can only be one libstdc++ l

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-06 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: test/std/language.support/support.exception/propagation/current_exception.pass.cpp:10-11 -// exception_ptr has not been implemented on Windows +// This test needs to be rewritten for the Windows exception_ptr semantics +// which copy t

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-06 Thread Ben Craig via Phabricator via cfe-commits
bcraig added inline comments. Comment at: test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp:12 + +// This test fails due to a stack overflow // XFAIL: LIBCXX-WINDOWS-FIXME EricWF wrote: > BillyONeal wrote: > > FWIW it does not

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-05 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. I think the medium to long term goal should be to replace the `__ExceptionPtrFoo` functions we use with our own implementation, so we no longer rely on these MSVC implementation details. However it appears that we don't have access to the internal headers that we might

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-05 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: include/exception:192 +#endif +void* __ptr1_; +void* __ptr2_; STL_MSFT wrote: > BillyONeal wrote: > > I hope you realize you are doing "evil" unsupported things :). (We won't go > > out of our way to break this,

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-05 Thread Stephan T. Lavavej via Phabricator via cfe-commits
STL_MSFT resigned from this revision. STL_MSFT added inline comments. Comment at: include/exception:192 +#endif +void* __ptr1_; +void* __ptr2_; BillyONeal wrote: > I hope you realize you are doing "evil" unsupported things :). (We won't go > out of our w

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-05 Thread Billy Robert O'Neal III via Phabricator via cfe-commits
BillyONeal added inline comments. Comment at: include/exception:192 +#endif +void* __ptr1_; +void* __ptr2_; I hope you realize you are doing "evil" unsupported things :). (We won't go out of our way to break this, but if it does break we won't feel bad :

[PATCH] D32927: [libc++] Implement exception_ptr on Windows

2017-05-05 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. Herald added a subscriber: mgorny. This patch implements exception_ptr on Windows using the `__ExceptionPtrFoo` functions provided by MSVC. The `__ExceptionPtrFoo` functions are defined inside the C++ standard library, `msvcprt`, which is unfortunate because it req