diff options
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 2d6ef998485a..8400774db93d 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -24,6 +24,7 @@ #include "Targets/Hexagon.h" #include "Targets/Lanai.h" #include "Targets/Le64.h" +#include "Targets/LoongArch.h" #include "Targets/M68k.h" #include "Targets/MSP430.h" #include "Targets/Mips.h" @@ -80,9 +81,10 @@ void defineCPUMacros(MacroBuilder &Builder, StringRef CPUName, bool Tuning) { void addCygMingDefines(const LangOptions &Opts, MacroBuilder &Builder) { // Mingw and cygwin define __declspec(a) to __attribute__((a)). Clang - // supports __declspec natively under -fms-extensions, but we define a no-op - // __declspec macro anyway for pre-processor compatibility. - if (Opts.MicrosoftExt) + // supports __declspec natively under -fdeclspec (also enabled with + // -fms-extensions), but we define a no-op __declspec macro anyway for + // pre-processor compatibility. + if (Opts.DeclSpecKeyword) Builder.defineMacro("__declspec", "__declspec"); else Builder.defineMacro("__declspec(a)", "__attribute__((a))"); @@ -670,6 +672,20 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple, default: return new CSKYTargetInfo(Triple, Opts); } + case llvm::Triple::loongarch32: + switch (os) { + case llvm::Triple::Linux: + return new LinuxTargetInfo<LoongArch32TargetInfo>(Triple, Opts); + default: + return new LoongArch32TargetInfo(Triple, Opts); + } + case llvm::Triple::loongarch64: + switch (os) { + case llvm::Triple::Linux: + return new LinuxTargetInfo<LoongArch64TargetInfo>(Triple, Opts); + default: + return new LoongArch64TargetInfo(Triple, Opts); + } } } } // namespace targets |