diff options
author | Martell Malone <martellmalone@gmail.com> | 2017-11-21 11:28:29 +0000 |
---|---|---|
committer | Martell Malone <martellmalone@gmail.com> | 2017-11-21 11:28:29 +0000 |
commit | 051e966e49721685a3f1a95c6fee50a0f1762bd8 (patch) | |
tree | f1bd810b1af8390784b2502082b5e2589ce012be /clang/lib | |
parent | 124f5de84134095ac4cfa88eecfec1cf39995516 (diff) | |
download | bcm5719-llvm-051e966e49721685a3f1a95c6fee50a0f1762bd8.tar.gz bcm5719-llvm-051e966e49721685a3f1a95c6fee50a0f1762bd8.zip |
[MINGW] normalize WIN32 macros
move _WIN64 and _WIN32 defines to lib/Basic/Targets/OSTargets.h
move WIN32, WIN64 and __MINGW64__ to addMinGWDefines
fixes __MINGW64__ not being defined for aarch64
adds WIN32 definition for x64
Reviewers: mstorsjo
Differential Revision: https://reviews.llvm.org/D40285
llvm-svn: 318755
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 9 | ||||
-rw-r--r-- | clang/lib/Basic/Targets.h | 2 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/AArch64.cpp | 13 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/AArch64.h | 3 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/ARM.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/OSTargets.h | 5 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/X86.h | 17 |
7 files changed, 14 insertions, 38 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index a9a5f4ddcfb..7deebc06c3e 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -97,7 +97,14 @@ void addCygMingDefines(const LangOptions &Opts, MacroBuilder &Builder) { } } -void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) { +void addMinGWDefines(const llvm::Triple &Triple, const LangOptions &Opts, + MacroBuilder &Builder) { + DefineStd(Builder, "WIN32", Opts); + DefineStd(Builder, "WINNT", Opts); + if (Triple.isArch64Bit()) { + DefineStd(Builder, "WIN64", Opts); + Builder.defineMacro("__MINGW64__"); + } Builder.defineMacro("__MSVCRT__"); Builder.defineMacro("__MINGW32__"); addCygMingDefines(Opts, Builder); diff --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h index 12a23fa8142..6fc967ddabe 100644 --- a/clang/lib/Basic/Targets.h +++ b/clang/lib/Basic/Targets.h @@ -40,7 +40,7 @@ void defineCPUMacros(clang::MacroBuilder &Builder, llvm::StringRef CPUName, bool Tuning = true); LLVM_LIBRARY_VISIBILITY -void addMinGWDefines(const clang::LangOptions &Opts, +void addMinGWDefines(const llvm::Triple &Triple, const clang::LangOptions &Opts, clang::MacroBuilder &Builder); LLVM_LIBRARY_VISIBILITY diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp index f58bf9f277d..62990dc2382 100644 --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -474,8 +474,6 @@ MicrosoftARM64TargetInfo::MicrosoftARM64TargetInfo(const llvm::Triple &Triple, void MicrosoftARM64TargetInfo::getVisualStudioDefines( const LangOptions &Opts, MacroBuilder &Builder) const { WindowsTargetInfo<AArch64leTargetInfo>::getVisualStudioDefines(Opts, Builder); - Builder.defineMacro("_WIN32", "1"); - Builder.defineMacro("_WIN64", "1"); Builder.defineMacro("_M_ARM64", "1"); } @@ -491,17 +489,6 @@ MinGWARM64TargetInfo::MinGWARM64TargetInfo(const llvm::Triple &Triple, TheCXXABI.set(TargetCXXABI::GenericAArch64); } -void MinGWARM64TargetInfo::getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const { - WindowsTargetInfo::getTargetDefines(Opts, Builder); - Builder.defineMacro("_WIN32", "1"); - Builder.defineMacro("_WIN64", "1"); - Builder.defineMacro("WIN32", "1"); - Builder.defineMacro("WIN64", "1"); - addMinGWDefines(Opts, Builder); -} - - DarwinAArch64TargetInfo::DarwinAArch64TargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) : DarwinTargetInfo<AArch64leTargetInfo>(Triple, Opts) { diff --git a/clang/lib/Basic/Targets/AArch64.h b/clang/lib/Basic/Targets/AArch64.h index 8391b7367a2..1b8a7745004 100644 --- a/clang/lib/Basic/Targets/AArch64.h +++ b/clang/lib/Basic/Targets/AArch64.h @@ -122,9 +122,6 @@ class LLVM_LIBRARY_VISIBILITY MinGWARM64TargetInfo : public WindowsARM64TargetInfo { public: MinGWARM64TargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts); - - void getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const override; }; class LLVM_LIBRARY_VISIBILITY AArch64beTargetInfo : public AArch64TargetInfo { diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp index e6dd6de952b..77b3f9a5373 100644 --- a/clang/lib/Basic/Targets/ARM.cpp +++ b/clang/lib/Basic/Targets/ARM.cpp @@ -999,11 +999,8 @@ MinGWARMTargetInfo::MinGWARMTargetInfo(const llvm::Triple &Triple, void MinGWARMTargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { WindowsARMTargetInfo::getTargetDefines(Opts, Builder); - DefineStd(Builder, "WIN32", Opts); - DefineStd(Builder, "WINNT", Opts); Builder.defineMacro("_ARM_"); Builder.defineMacro("__ARM_DWARF_EH__"); - addMinGWDefines(Opts, Builder); } CygwinARMTargetInfo::CygwinARMTargetInfo(const llvm::Triple &Triple, diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h index c775fe32ee5..cf2905fbb02 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -572,6 +572,11 @@ protected: void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override { Builder.defineMacro("_WIN32"); + if (Triple.isArch64Bit()) + Builder.defineMacro("_WIN64"); + if (Triple.isWindowsGNUEnvironment()) + addMinGWDefines(Triple, Opts, Builder); + } void getVisualStudioDefines(const LangOptions &Opts, MacroBuilder &Builder) const { diff --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h index 8a9d3ccb599..ffcb2dbbfd6 100644 --- a/clang/lib/Basic/Targets/X86.h +++ b/clang/lib/Basic/Targets/X86.h @@ -410,11 +410,6 @@ public: ? "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" : "e-m:e-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"); } - - void getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const override { - WindowsTargetInfo<X86_32TargetInfo>::getTargetDefines(Opts, Builder); - } }; // x86-32 Windows Visual Studio target @@ -451,10 +446,7 @@ public: void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder); - DefineStd(Builder, "WIN32", Opts); - DefineStd(Builder, "WINNT", Opts); Builder.defineMacro("_X86_"); - addMinGWDefines(Opts, Builder); } }; @@ -658,12 +650,6 @@ public: IntPtrType = SignedLongLong; } - void getTargetDefines(const LangOptions &Opts, - MacroBuilder &Builder) const override { - WindowsTargetInfo<X86_64TargetInfo>::getTargetDefines(Opts, Builder); - Builder.defineMacro("_WIN64"); - } - BuiltinVaListKind getBuiltinVaListKind() const override { return TargetInfo::CharPtrBuiltinVaList; } @@ -726,9 +712,6 @@ public: void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder); - DefineStd(Builder, "WIN64", Opts); - Builder.defineMacro("__MINGW64__"); - addMinGWDefines(Opts, Builder); // GCC defines this macro when it is using __gxx_personality_seh0. if (!Opts.SjLjExceptions) |