From: Saleem Abdulrasool Date: Tue, 7 Feb 2017 19:00:06 +0000 (+0000) Subject: Revert "Basic: match GCC behaviour for SuS macro" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=33ec213b80bc8a48e529abb59173be6855808a77;p=clang Revert "Basic: match GCC behaviour for SuS macro" This reverts commit SVN r294148. Seems that it was mistaken, and GCC does still define `__unix` and `unix` when in GNU mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@294332 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index c69f575a5e..3da1b0f4a2 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -303,10 +303,10 @@ protected: // DragonFly defines; list based off of gcc output Builder.defineMacro("__DragonFly__"); Builder.defineMacro("__DragonFly_cc_version", "100001"); - Builder.defineMacro("__unix__"); Builder.defineMacro("__ELF__"); Builder.defineMacro("__KPRINTF_ATTRIBUTE__"); Builder.defineMacro("__tune_i386__"); + DefineStd(Builder, "unix", Opts); } public: DragonFlyBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) @@ -343,7 +343,7 @@ protected: Builder.defineMacro("__FreeBSD__", Twine(Release)); Builder.defineMacro("__FreeBSD_cc_version", Twine(CCVersion)); Builder.defineMacro("__KPRINTF_ATTRIBUTE__"); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); // On FreeBSD, wchar_t contains the number of the code point as @@ -388,9 +388,9 @@ protected: MacroBuilder &Builder) const override { // GNU/kFreeBSD defines; list based off of gcc output + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__FreeBSD_kernel__"); Builder.defineMacro("__GLIBC__"); - Builder.defineMacro("__unix__"); Builder.defineMacro("__ELF__"); if (Opts.POSIXThreads) Builder.defineMacro("_REENTRANT"); @@ -410,8 +410,8 @@ protected: MacroBuilder &Builder) const override { // Haiku defines; list based off of gcc output Builder.defineMacro("__HAIKU__"); - Builder.defineMacro("__unix__"); Builder.defineMacro("__ELF__"); + DefineStd(Builder, "unix", Opts); } public: HaikuTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) @@ -440,8 +440,8 @@ protected: Builder.defineMacro("_EM_LSIZE", "4"); Builder.defineMacro("_EM_FSIZE", "4"); Builder.defineMacro("_EM_DSIZE", "8"); - Builder.defineMacro("__unix__"); Builder.defineMacro("__ELF__"); + DefineStd(Builder, "unix", Opts); } public: MinixTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) @@ -455,7 +455,7 @@ protected: void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override { // Linux defines; list based off of gcc output - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); DefineStd(Builder, "linux", Opts); Builder.defineMacro("__gnu_linux__"); Builder.defineMacro("__ELF__"); @@ -541,7 +541,7 @@ protected: // OpenBSD defines; list based off of gcc output Builder.defineMacro("__OpenBSD__"); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); if (Opts.POSIXThreads) Builder.defineMacro("_REENTRANT"); @@ -578,7 +578,7 @@ protected: // Bitrig defines; list based off of gcc output Builder.defineMacro("__Bitrig__"); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); if (Opts.POSIXThreads) Builder.defineMacro("_REENTRANT"); @@ -652,7 +652,7 @@ protected: Builder.defineMacro("__FreeBSD__", "9"); Builder.defineMacro("__FreeBSD_cc_version", "900001"); Builder.defineMacro("__KPRINTF_ATTRIBUTE__"); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); Builder.defineMacro("__ORBIS__"); } @@ -683,8 +683,8 @@ class SolarisTargetInfo : public OSTargetInfo { protected: void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override { - Builder.defineMacro("__unix__"); DefineStd(Builder, "sun", Opts); + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); Builder.defineMacro("__svr4__"); Builder.defineMacro("__SVR4"); @@ -786,7 +786,7 @@ protected: if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); Builder.defineMacro("__native_client__"); } @@ -4455,7 +4455,7 @@ public: Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN32__"); addCygMingDefines(Opts, Builder); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); } @@ -4750,7 +4750,7 @@ public: Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN64__"); addCygMingDefines(Opts, Builder); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); @@ -5865,7 +5865,7 @@ public: Builder.defineMacro("_ARM_"); Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN32__"); - Builder.defineMacro("__unix__"); + DefineStd(Builder, "unix", Opts); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); } @@ -8040,8 +8040,8 @@ public: void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { + DefineStd(Builder, "unix", Opts); defineCPUMacros(Builder, "le64", /*Tuning=*/false); - Builder.defineMacro("__unix__"); Builder.defineMacro("__ELF__"); } ArrayRef getTargetBuiltins() const override { diff --git a/test/Driver/le32-unknown-nacl.cpp b/test/Driver/le32-unknown-nacl.cpp index 1be2c03b53..379ddb6c63 100644 --- a/test/Driver/le32-unknown-nacl.cpp +++ b/test/Driver/le32-unknown-nacl.cpp @@ -60,9 +60,9 @@ void __le32__defined() {} void __pnacl__defined() {} #endif -// CHECK: __unix__defined -#ifdef __unix__ -void __unix__defined() {} +// CHECK: unixdefined +#ifdef unix +void unixdefined() {} #endif // CHECK: __ELF__defined diff --git a/test/Driver/le64-unknown-unknown.cpp b/test/Driver/le64-unknown-unknown.cpp index 771b21bff3..d0a58598ff 100644 --- a/test/Driver/le64-unknown-unknown.cpp +++ b/test/Driver/le64-unknown-unknown.cpp @@ -54,6 +54,16 @@ void __le64defined() {} void __le64__defined() {} #endif +// CHECK: unixdefined +#ifdef unix +void unixdefined() {} +#endif + +// CHECK: __unixdefined +#ifdef __unix +void __unixdefined() {} +#endif + // CHECK: __unix__defined #ifdef __unix__ void __unix__defined() {} diff --git a/test/Driver/mipsel-nacl-defines.cpp b/test/Driver/mipsel-nacl-defines.cpp index 943750579e..0f63d7659e 100644 --- a/test/Driver/mipsel-nacl-defines.cpp +++ b/test/Driver/mipsel-nacl-defines.cpp @@ -21,9 +21,9 @@ void _mipsdefined() {} void __native_client__defined() {} #endif -// CHECK: __unix__defined -#ifdef __unix__ -void __unix__defined() {} +// CHECK: unixdefined +#ifdef unix +void unixdefined() {} #endif // CHECK: __ELF__defined diff --git a/test/Driver/x86_64-nacl-defines.cpp b/test/Driver/x86_64-nacl-defines.cpp index 2ff7965122..87d02d7e10 100644 --- a/test/Driver/x86_64-nacl-defines.cpp +++ b/test/Driver/x86_64-nacl-defines.cpp @@ -21,9 +21,9 @@ void __native_client__defined() {} void __x86_64__defined() {} #endif -// CHECK: __unix__defined -#ifdef __unix__ -void __unix__defined() {} +// CHECK: unixdefined +#ifdef unix +void unixdefined() {} #endif // CHECK: __ELF__defined diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 3aae43e2ab..1d3e9fbae1 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -8462,6 +8462,7 @@ // PS4:#define __WINT_WIDTH__ 32 // PS4:#define __amd64 1 // PS4:#define __amd64__ 1 +// PS4:#define __unix 1 // PS4:#define __unix__ 1 // PS4:#define __x86_64 1 // PS4:#define __x86_64__ 1 @@ -8859,6 +8860,7 @@ // WEBASSEMBLY32-NOT:#define __wasm_simd128__ // WEBASSEMBLY32-NOT:#define __wasm_simd256__ // WEBASSEMBLY32-NOT:#define __wasm_simd512__ +// WEBASSEMBLY32-NOT:#define __unix // WEBASSEMBLY32-NOT:#define __unix__ // WEBASSEMBLY32-NEXT:#define __wasm 1 // WEBASSEMBLY32-NEXT:#define __wasm32 1 @@ -9174,6 +9176,7 @@ // WEBASSEMBLY64-NOT:#define __wasm_simd128__ // WEBASSEMBLY64-NOT:#define __wasm_simd256__ // WEBASSEMBLY64-NOT:#define __wasm_simd512__ +// WEBASSEMBLY64-NOT:#define __unix // WEBASSEMBLY64-NOT:#define __unix__ // WEBASSEMBLY64-NEXT:#define __wasm 1 // WEBASSEMBLY64-NOT:#define __wasm32