From 603580216f0aa387b0d4c01b8d2f05873e6a98e2 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 12 Jul 2019 21:45:08 +0000 Subject: [PATCH] Remove __VERSION__ Summary: It has been introduced in 2011 for gcc compat: https://github.com/llvm-mirror/clang/commit/ad1a4c6e89594e704775ddb6b036ac982fd68cad it is probably time to remove it Reviewers: rnk, dexonsmith Reviewed By: rnk Subscribers: dschuff, aheejin, fedor.sergeev, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64062 llvm-svn: 365962 --- clang/docs/LanguageExtensions.rst | 2 ++ clang/docs/ReleaseNotes.rst | 10 ++++++++++ clang/lib/Basic/Version.cpp | 2 -- clang/lib/Frontend/InitPreprocessor.cpp | 6 ------ clang/test/Index/complete-exprs.c | 2 -- clang/test/Preprocessor/init.c | 4 ---- clang/utils/builtin-defines.c | 1 - 7 files changed, 12 insertions(+), 15 deletions(-) diff --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst index ecbf04c..61152a2 100644 --- a/clang/docs/LanguageExtensions.rst +++ b/clang/docs/LanguageExtensions.rst @@ -324,6 +324,8 @@ option for a warning and returns true if that is a valid warning option. ... #endif +.. _languageextensions-builtin-macros: + Builtin Macros ============== diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index f0a3505..7185030 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -56,6 +56,11 @@ Improvements to Clang's diagnostics Non-comprehensive list of changes in this release ------------------------------------------------- +- The ``__VERSION__`` macro has been removed. + Previously this macro was set to a string aiming to achieve compatibility with + GCC 4.2.1, but that should no longer be necessary. To get Clang's version, + use the :ref:`clang namespaced version macros `. + - ... @@ -79,6 +84,11 @@ Modified Compiler Flags - ... +Removed Compiler Options +------------------------ + +- ... + New Pragmas in Clang -------------------- diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp index d656458..5fd1276 100644 --- a/clang/lib/Basic/Version.cpp +++ b/clang/lib/Basic/Version.cpp @@ -136,8 +136,6 @@ std::string getClangToolFullVersion(StringRef ToolName) { } std::string getClangFullCPPVersion() { - // The version string we report in __VERSION__ is just a compacted version of - // the one we report on the command line. std::string buf; llvm::raw_string_ostream OS(buf); #ifdef CLANG_VENDOR diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 1741ba5..a02c266 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -604,12 +604,6 @@ static void InitializePredefinedMacros(const TargetInfo &TI, // Support for #pragma redefine_extname (Sun compatibility) Builder.defineMacro("__PRAGMA_REDEFINE_EXTNAME", "1"); - // As sad as it is, enough software depends on the __VERSION__ for version - // checks that it is necessary to report 4.2.1 (the base GCC version we claim - // compatibility with) first. - Builder.defineMacro("__VERSION__", "\"4.2.1 Compatible " + - Twine(getClangFullCPPVersion()) + "\""); - // Initialize language-specific preprocessor defines. // Standard conforming mode? diff --git a/clang/test/Index/complete-exprs.c b/clang/test/Index/complete-exprs.c index 9beb16d..50f5025f 100644 --- a/clang/test/Index/complete-exprs.c +++ b/clang/test/Index/complete-exprs.c @@ -27,7 +27,6 @@ void f5(float f) { // RUN: c-index-test -code-completion-at=%s:7:10 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s // RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:7:10 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s // CHECK-CC1: NotImplemented:{TypedText __PRETTY_FUNCTION__} (65) -// CHECK-CC1: macro definition:{TypedText __VERSION__} (70) // CHECK-CC1: FunctionDecl:{ResultType int}{TypedText f}{LeftParen (}{Placeholder int}{RightParen )} (12) (unavailable) // CHECK-CC1-NOT: NotImplemented:{TypedText float} (65) // CHECK-CC1: ParmDecl:{ResultType int}{TypedText j} (8) @@ -39,7 +38,6 @@ void f5(float f) { // RUN: c-index-test -code-completion-at=%s:7:18 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s // RUN: c-index-test -code-completion-at=%s:7:22 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s // RUN: c-index-test -code-completion-at=%s:7:2 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC2 %s -// CHECK-CC2: macro definition:{TypedText __VERSION__} (70) // CHECK-CC2: FunctionDecl:{ResultType int}{TypedText f}{LeftParen (}{Placeholder int}{RightParen )} (50) // CHECK-CC2: NotImplemented:{TypedText float} (50) // CHECK-CC2: ParmDecl:{ResultType int}{TypedText j} (34) diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 8df3b4b..00a7c7b 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -101,7 +101,6 @@ // COMMON:#define __ORDER_PDP_ENDIAN__ 3412 // COMMON:#define __STDC_HOSTED__ 1 // COMMON:#define __STDC__ 1 -// COMMON:#define __VERSION__ {{.*}} // COMMON:#define __clang__ 1 // COMMON:#define __clang_major__ {{[0-9]+}} // COMMON:#define __clang_minor__ {{[0-9]+}} @@ -8169,7 +8168,6 @@ // SPARC:#define __UINT_LEAST8_MAX__ 255 // SPARC:#define __UINT_LEAST8_TYPE__ unsigned char // SPARC:#define __USER_LABEL_PREFIX__ -// SPARC:#define __VERSION__ "4.2.1 Compatible{{.*}} // SPARC:#define __WCHAR_MAX__ 2147483647 // SPARC:#define __WCHAR_TYPE__ int // SPARC:#define __WCHAR_WIDTH__ 32 @@ -9041,7 +9039,6 @@ // X86_64-CLOUDABI:#define __UINT_LEAST8_MAX__ 255 // X86_64-CLOUDABI:#define __UINT_LEAST8_TYPE__ unsigned char // X86_64-CLOUDABI:#define __USER_LABEL_PREFIX__ -// X86_64-CLOUDABI:#define __VERSION__ "4.2.1 Compatible{{.*}} // X86_64-CLOUDABI:#define __WCHAR_MAX__ 2147483647 // X86_64-CLOUDABI:#define __WCHAR_TYPE__ int // X86_64-CLOUDABI:#define __WCHAR_WIDTH__ 32 @@ -10043,7 +10040,6 @@ // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_MAX__ 255 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_TYPE__ unsigned char // WEBASSEMBLY-NEXT:#define __USER_LABEL_PREFIX__ -// WEBASSEMBLY-NEXT:#define __VERSION__ "{{.*}}" // WEBASSEMBLY-NEXT:#define __WCHAR_MAX__ 2147483647 // WEBASSEMBLY-NEXT:#define __WCHAR_TYPE__ int // WEBASSEMBLY-NOT:#define __WCHAR_UNSIGNED__ diff --git a/clang/utils/builtin-defines.c b/clang/utils/builtin-defines.c index 9bbe5be..2936d63 100644 --- a/clang/utils/builtin-defines.c +++ b/clang/utils/builtin-defines.c @@ -49,7 +49,6 @@ RUN: done; #undef __INT8_TYPE__ #undef __SSP__ #undef __APPLE_CC__ -#undef __VERSION__ #undef __clang__ #undef __llvm__ #undef __nocona -- 2.7.4