mirror of
https://github.com/intel/llvm.git
synced 2026-01-31 16:29:50 +08:00
MS ABI: Define _HAS_CHAR16_T_LANGUAGE_SUPPORT when appropriate
If we are in MSVC 2015 compatibility mode and C++11 language conformance is enabled, define _HAS_CHAR16_T_LANGUAGE_SUPPORT to 1. llvm-svn: 232615
This commit is contained in:
@@ -655,6 +655,9 @@ protected:
|
||||
Builder.defineMacro("_MSC_FULL_VER", Twine(Opts.MSCompatibilityVersion));
|
||||
// FIXME We cannot encode the revision information into 32-bits
|
||||
Builder.defineMacro("_MSC_BUILD", Twine(1));
|
||||
|
||||
if (Opts.CPlusPlus11 && Opts.isCompatibleWithMSVC(19))
|
||||
Builder.defineMacro("_HAS_CHAR16_T_LANGUAGE_SUPPORT", Twine(1));
|
||||
}
|
||||
|
||||
if (Opts.MicrosoftExt) {
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
// RUN: %clang_cc1 %s -triple i686-pc-win32 -fsyntax-only -std=c++11 -Wmicrosoft -verify -fms-compatibility -fexceptions -fcxx-exceptions -fms-compatibility-version=19.00
|
||||
// RUN: %clang_cc1 %s -triple i686-pc-win32 -fsyntax-only -std=c++11 -Wmicrosoft -verify -fms-compatibility -fexceptions -fcxx-exceptions -fms-compatibility-version=18.00
|
||||
|
||||
#if _MSC_VER >= 1900
|
||||
#if defined(_HAS_CHAR16_T_LANGUAGE_SUPPORT) && _HAS_CHAR16_T_LANGUAGE_SUPPORT
|
||||
char16_t x;
|
||||
char32_t y;
|
||||
_Atomic(int) z;
|
||||
#else
|
||||
typedef unsigned short char16_t;
|
||||
typedef unsigned int char32_t;
|
||||
#endif
|
||||
|
||||
#if _MSC_VER >= 1900
|
||||
_Atomic(int) z;
|
||||
#else
|
||||
struct _Atomic {};
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user