]> granicus.if.org Git - clang/commitdiff
Update __VERSION__ to remove the hardcoded 4.2.1 version
authorSylvestre Ledru <sylvestre@debian.org>
Mon, 15 Jul 2019 17:47:22 +0000 (17:47 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Mon, 15 Jul 2019 17:47:22 +0000 (17:47 +0000)
Summary:
Just like in https://reviews.llvm.org/D56803
for -dumpversion

Reviewers: rnk

Reviewed By: rnk

Subscribers: dexonsmith, lebedev.ri, hubert.reinterpretcast, xbolva00, fedor.sergeev, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D63048

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@366091 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LanguageExtensions.rst
docs/ReleaseNotes.rst
lib/Frontend/InitPreprocessor.cpp
test/Preprocessor/init.c

index 266309c6ce248ff6e29cbf0ddde0ab3711d5a68c..44fa2b2ec09808a2b63ae3612a106f26c28e8cec 100644 (file)
@@ -324,6 +324,8 @@ option for a warning and returns true if that is a valid warning option.
   ...
   #endif
 
+.. _languageextensions-builtin-macros:
+
 Builtin Macros
 ==============
 
index f89447fc96a3c0e2e1e4cf3c374e60525a920ecb..dadcc77f4803ece6ff5de7ec54cbcf774d63f942 100644 (file)
@@ -56,6 +56,12 @@ Improvements to Clang's diagnostics
 Non-comprehensive list of changes in this release
 -------------------------------------------------
 
+- The ``__VERSION__`` macro has been updated.
+  Previously this macro contained the string '4.2.1 Compatible' to achieve
+  compatibility with GCC 4.2.1, but that should no longer be necessary.
+  However, to retrieve Clang's version, please favor the one of the macro
+  defined in :ref:`clang namespaced version macros <languageextensions-builtin-macros>`.
+
 - ...
 
 
index 1741ba5e5203e65bf436e804519f103a45b3351e..11ebab9454871fc17b3df898d212e303c8786e4c 100644 (file)
@@ -604,10 +604,9 @@ 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 " +
+  // Previously this macro was set to a string aiming to achieve compatibility
+  // with GCC 4.2.1. Now, just return the full Clang version
+  Builder.defineMacro("__VERSION__", "\"" +
                       Twine(getClangFullCPPVersion()) + "\"");
 
   // Initialize language-specific preprocessor defines.
index 8df3b4bd2ccf48c94a84164279ed1e3e85053782..fce85e05f63f5663c2ec3ee6fea4812b5a23635b 100644 (file)
 // 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 __VERSION__ "Clang{{.*}}
 // SPARC:#define __WCHAR_MAX__ 2147483647
 // SPARC:#define __WCHAR_TYPE__ int
 // SPARC:#define __WCHAR_WIDTH__ 32
 // 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 __VERSION__ "Clang{{.*}}
 // X86_64-CLOUDABI:#define __WCHAR_MAX__ 2147483647
 // X86_64-CLOUDABI:#define __WCHAR_TYPE__ int
 // X86_64-CLOUDABI:#define __WCHAR_WIDTH__ 32