From e11d70efe73d57e9a794bad46e7921c506012241 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sun, 5 Feb 2017 22:18:15 +0000 Subject: [PATCH] Basic: match GCC behaviour for SuS macro GCC does not generate `__unix` nor `unix` macros. The latter already intrudes into the user's namespace and should be avoided. Use the canonical spelling of `__unix__` across all the targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@294148 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Targets.cpp | 30 ++++++++++++++-------------- test/Driver/le32-unknown-nacl.cpp | 6 +++--- test/Driver/le64-unknown-unknown.cpp | 10 ---------- test/Driver/mipsel-nacl-defines.cpp | 6 +++--- test/Driver/x86_64-nacl-defines.cpp | 6 +++--- test/Preprocessor/init.c | 3 --- 6 files changed, 24 insertions(+), 37 deletions(-) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 7e311b0ac7..fe52ed906d 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__"); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); 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 - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); 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__"); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); 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__"); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); 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__"); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); 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"); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); Builder.defineMacro("__ELF__"); Builder.defineMacro("__native_client__"); } @@ -4455,7 +4455,7 @@ public: Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN32__"); addCygMingDefines(Opts, Builder); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); } @@ -4750,7 +4750,7 @@ public: Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN64__"); addCygMingDefines(Opts, Builder); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); @@ -5865,7 +5865,7 @@ public: Builder.defineMacro("_ARM_"); Builder.defineMacro("__CYGWIN__"); Builder.defineMacro("__CYGWIN32__"); - DefineStd(Builder, "unix", Opts); + Builder.defineMacro("__unix__"); if (Opts.CPlusPlus) Builder.defineMacro("_GNU_SOURCE"); } @@ -8029,8 +8029,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 379ddb6c63..1be2c03b53 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: unixdefined -#ifdef unix -void unixdefined() {} +// CHECK: __unix__defined +#ifdef __unix__ +void __unix__defined() {} #endif // CHECK: __ELF__defined diff --git a/test/Driver/le64-unknown-unknown.cpp b/test/Driver/le64-unknown-unknown.cpp index d0a58598ff..771b21bff3 100644 --- a/test/Driver/le64-unknown-unknown.cpp +++ b/test/Driver/le64-unknown-unknown.cpp @@ -54,16 +54,6 @@ 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 0f63d7659e..943750579e 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: unixdefined -#ifdef unix -void unixdefined() {} +// CHECK: __unix__defined +#ifdef __unix__ +void __unix__defined() {} #endif // CHECK: __ELF__defined diff --git a/test/Driver/x86_64-nacl-defines.cpp b/test/Driver/x86_64-nacl-defines.cpp index 87d02d7e10..2ff7965122 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: unixdefined -#ifdef unix -void unixdefined() {} +// CHECK: __unix__defined +#ifdef __unix__ +void __unix__defined() {} #endif // CHECK: __ELF__defined diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 1d3e9fbae1..3aae43e2ab 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -8462,7 +8462,6 @@ // 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 @@ -8860,7 +8859,6 @@ // 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 @@ -9176,7 +9174,6 @@ // 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 -- 2.40.0