diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 7 | ||||
| -rw-r--r-- | clang/test/Driver/le32-unknown-nacl.cpp | 19 | 
2 files changed, 26 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index bff4ac8d5cd..7399d5a3595 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -2870,6 +2870,13 @@ public:    }    virtual void getTargetDefines(const LangOptions &Opts,                                  MacroBuilder &Builder) const { +    DefineStd(Builder, "unix", Opts); +    Builder.defineMacro("__ELF__"); +    if (Opts.POSIXThreads) +      Builder.defineMacro("_REENTRANT"); +    if (Opts.CPlusPlus) +      Builder.defineMacro("_GNU_SOURCE"); +      Builder.defineMacro("__native_client__");      getArchDefines(Opts, Builder);    } diff --git a/clang/test/Driver/le32-unknown-nacl.cpp b/clang/test/Driver/le32-unknown-nacl.cpp index 6f2f79d11c9..3ff54d40cb1 100644 --- a/clang/test/Driver/le32-unknown-nacl.cpp +++ b/clang/test/Driver/le32-unknown-nacl.cpp @@ -26,6 +26,25 @@ void __pnacl__defined() {  }  #endif +#ifdef unix +void unixdefined() { +  // CHECK: unixdefined +} +#endif + +#ifdef __ELF__ +void __ELF__defined() { +  // CHECK: __ELF__defined +} +#endif + +#ifdef _GNU_SOURCE +void _GNU_SOURCEdefined() { +  // CHECK: _GNU_SOURCEdefined +} +#endif + +  // Check types  // CHECK: signext i8 @check_char()  | 

