diff options
| author | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2013-09-21 01:27:01 +0000 |
|---|---|---|
| committer | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2013-09-21 01:27:01 +0000 |
| commit | c19a284182053fed6e84389acf2f68cc908f18ee (patch) | |
| tree | 288471dfd0bed783a72ba87320f0eda4043d7a0b | |
| parent | 500242d4fe4243e6dc41795663d86f1828062860 (diff) | |
| download | bcm5719-llvm-c19a284182053fed6e84389acf2f68cc908f18ee.tar.gz bcm5719-llvm-c19a284182053fed6e84389acf2f68cc908f18ee.zip | |
[Mips] Allocate NaClTargetInfo for MIPSEL NaCl
A patch to AllocateTarget function to recognize llvm::Triple::NaCl for
MIPSEL and return NaClTargetInfo. Additional test has been added to check
if the expected macros get defined.
llvm-svn: 191124
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Driver/mipsel-nacl-defines.cpp | 45 |
2 files changed, 47 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 2f4aeb93bef..0e8b7659cf8 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -5376,6 +5376,8 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { return new FreeBSDTargetInfo<Mips32ELTargetInfo>(Triple); case llvm::Triple::NetBSD: return new NetBSDTargetInfo<Mips32ELTargetInfo>(Triple); + case llvm::Triple::NaCl: + return new NaClTargetInfo<Mips32ELTargetInfo>(Triple); default: return new Mips32ELTargetInfo(Triple); } diff --git a/clang/test/Driver/mipsel-nacl-defines.cpp b/clang/test/Driver/mipsel-nacl-defines.cpp new file mode 100644 index 00000000000..0f63d7659e5 --- /dev/null +++ b/clang/test/Driver/mipsel-nacl-defines.cpp @@ -0,0 +1,45 @@ +// RUN: %clang -target mipsel-unknown-nacl -### %s -emit-llvm-only -c -o %t.o 2>&1 | FileCheck %s -check-prefix=ECHO +// RUN: %clang -target mipsel-unknown-nacl %s -emit-llvm -S -c -o - | FileCheck %s +// RUN: %clang -target mipsel-unknown-nacl %s -emit-llvm -S -c -pthread -o - | FileCheck %s -check-prefix=THREADS + +// ECHO: {{.*}} "-cc1" {{.*}}mipsel-nacl-defines.c + +// Check platform defines + +// CHECK: _MIPSELdefined +#ifdef _MIPSEL +void _MIPSELdefined() {} +#endif + +// CHECK: _mipsdefined +#ifdef _mips +void _mipsdefined() {} +#endif + +// CHECK: __native_client__defined +#ifdef __native_client__ +void __native_client__defined() {} +#endif + +// CHECK: unixdefined +#ifdef unix +void unixdefined() {} +#endif + +// CHECK: __ELF__defined +#ifdef __ELF__ +void __ELF__defined() {} +#endif + +// CHECK: _GNU_SOURCEdefined +#ifdef _GNU_SOURCE +void _GNU_SOURCEdefined() {} +#endif + +// THREADS: _REENTRANTdefined +// CHECK: _REENTRANTundefined +#ifdef _REENTRANT +void _REENTRANTdefined() {} +#else +void _REENTRANTundefined() {} +#endif |

