SuccessChanges

Summary

  1. [libc++] Implement exception_ptr on Windows Summary: 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 requires libc++ to link to the MSVC STL. However this doesn't seem to cause any immediate problems. However to be safe I kept all usages within the libc++ dylib so that user programs wouldn't have to link to MSVCPRT as well. Note there are still 2 outstanding exception_ptr/nested_exception test failures. * `current_exception.pass.cpp` needs to be rewritten for the Windows exception_ptr semantics which copy the exception every time. * `rethrow_if_nested.pass.cpp` need investigation. It hits a stack overflow, likely from recursion. This patch also gets most of the `<future>` tests passing as well. Reviewers: mclow.lists, compnerd, bcraig, rmaprath, majnemer, BillyONeal, STL_MSFT Subscribers: mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D32927
  2. [XRay][compiler-rt] XFAIL on ppc Follow-up on D32846.
  3. Fix DLL import/export on Win32 locale helpers
  4. Fix DLL import for __time_get_c_storage member functions.
  5. Revert "Actually remove the MSVC STL when linking and testing libc++ on Windows" This reverts commit r302387.
  6. Quick fix to D32609, it seems .o files are not transferred in all cases. Therefore the .o file in question is renamed to .obj.coff.
Revision 302393 by ericwf:
[libc++] Implement exception_ptr on Windows

Summary:
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 requires libc++ to link to the MSVC STL. However this doesn't seem to cause any immediate problems. However to be safe I kept all usages within the libc++ dylib so that user programs wouldn't have to link to MSVCPRT as well.

Note there are still 2 outstanding exception_ptr/nested_exception test failures.

* `current_exception.pass.cpp` needs to be rewritten for the Windows exception_ptr semantics which copy the exception every time.
* `rethrow_if_nested.pass.cpp` need investigation. It hits a stack overflow, likely from recursion.

This patch also gets most of the `<future>` tests passing as well.

Reviewers: mclow.lists, compnerd, bcraig, rmaprath, majnemer, BillyONeal, STL_MSFT

Subscribers: mgorny, cfe-commits

Differential Revision: https://reviews.llvm.org/D32927
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/exception (diff)llvm-revision.src/libcxx/trunk/include/exception
The file was modified/libcxx/trunk/lib/CMakeLists.txt (diff)llvm-revision.src/libcxx/trunk/lib/CMakeLists.txt
The file was modified/libcxx/trunk/src/exception.cpp (diff)llvm-revision.src/libcxx/trunk/src/exception.cpp
The file was added/libcxx/trunk/src/support/runtime/exception_pointer_msvc.ippllvm-revision.src/libcxx/trunk/src/support/runtime/exception_pointer_msvc.ipp
The file was modified/libcxx/trunk/test/libcxx/thread/futures/futures.promise/set_exception.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/libcxx/thread/futures/futures.promise/set_exception.pass.cpp
The file was modified/libcxx/trunk/test/libcxx/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/libcxx/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/except.nested/assign.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/except.nested/assign.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/propagation/current_exception.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/propagation/current_exception.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp
The file was modified/libcxx/trunk/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp
Revision 302392 by dberris:
[XRay][compiler-rt] XFAIL on ppc

Follow-up on D32846.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/xray/TestCases/Linux/func-id-utils.cc (diff)llvm-revision.src/compiler-rt/trunk/test/xray/TestCases/Linux/func-id-utils.cc
Revision 302391 by ericwf:
Fix DLL import/export on Win32 locale helpers
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/support/win32/locale_win32.h (diff)llvm-revision.src/libcxx/trunk/include/support/win32/locale_win32.h
Revision 302390 by ericwf:
Fix DLL import for __time_get_c_storage member functions.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/locale (diff)llvm-revision.src/libcxx/trunk/include/locale
Revision 302389 by ericwf:
Revert "Actually remove the MSVC STL when linking and testing libc++ on Windows"

This reverts commit r302387.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/utils/libcxx/test/config.py (diff)llvm-revision.src/libcxx/trunk/utils/libcxx/test/config.py
Revision 302388 by ecbeckmann:
Quick fix to D32609, it seems .o files are not transferred in all cases.

Therefore the .o file in question is renamed to .obj.coff.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-readobj/Inputs/resources/test_resource.obj.coffllvm-revision.src/llvm/trunk/test/tools/llvm-readobj/Inputs/resources/test_resource.obj.coff
The file was modified/llvm/trunk/test/tools/llvm-readobj/resources.test (diff)llvm-revision.src/llvm/trunk/test/tools/llvm-readobj/resources.test