diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-05-07 06:15:46 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-05-07 06:15:46 +0000 |
commit | 8354eeed19e721f25cebba17f4af2470ffebc495 (patch) | |
tree | 3404dc7eb19a60acc6b4e5fb64833d85fc89b599 /clang/docs/MSVCCompatibility.rst | |
parent | cdc22a889e4e4e22e72be01d217ddcc0ad063b43 (diff) | |
download | llvm-8354eeed19e721f25cebba17f4af2470ffebc495.zip llvm-8354eeed19e721f25cebba17f4af2470ffebc495.tar.gz llvm-8354eeed19e721f25cebba17f4af2470ffebc495.tar.bz2 |
[MS ABI] Implement thread-safe initialization using the MSVC 2015 ABI
The MSVC 2015 ABI utilizes a rather straightforward adaptation of the
algorithm found in the appendix of N2382. While we are here, implement
support for emitting cleanups if an exception is thrown while we are
intitializing a static local variable.
llvm-svn: 236697
Diffstat (limited to 'clang/docs/MSVCCompatibility.rst')
-rw-r--r-- | clang/docs/MSVCCompatibility.rst | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/docs/MSVCCompatibility.rst b/clang/docs/MSVCCompatibility.rst index 8f5d70e..2228a9a 100644 --- a/clang/docs/MSVCCompatibility.rst +++ b/clang/docs/MSVCCompatibility.rst @@ -95,10 +95,11 @@ The status of major ABI-impacting C++ features: .. _consistent with Visual C++: https://msdn.microsoft.com/en-us/library/wfa0edys.aspx -* Thread-safe initialization of local statics: :none:`Unstarted`. We are ABI - compatible with MSVC 2013, which does not support thread-safe local statics. - MSVC "14" changed the ABI to make initialization of local statics thread safe, - and we have not yet implemented this. +* Thread-safe initialization of local statics: :none:`Complete`. MSVC 2015 + added support for thread-safe initialization of such variables by taking an + ABI break. + We are ABI compatible with both the MSVC 2013 and 2015 ABI for static local + variables. * Lambdas: :good:`Mostly complete`. Clang is compatible with Microsoft's implementation of lambdas except for providing overloads for conversion to |