forked from OSchip/llvm-project
Fix LLVM tool --version build mode printing for MSVC
LLVM tools such as llc print "DEBUG build" or "Optimized build" when passed --version. Before this change, this was implemented by checking for the __OPTIMIZE__ GCC macro. MSVC does not define this macro. For MSVC, control this behavior with _DEBUG instead. It doesn't have precisely the same meaning, but in most configurations, it will do the right thing. Fixes PR17752 Reviewed by: MaskRay Differential Revision: https://reviews.llvm.org/D71817
This commit is contained in:
parent
e7d5131d3b
commit
a9fdfe63ce
|
@ -2436,6 +2436,28 @@ static VersionPrinterTy OverrideVersionPrinter = nullptr;
|
||||||
|
|
||||||
static std::vector<VersionPrinterTy> *ExtraVersionPrinters = nullptr;
|
static std::vector<VersionPrinterTy> *ExtraVersionPrinters = nullptr;
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
// GCC and GCC-compatible compilers define __OPTIMIZE__ when optimizations are
|
||||||
|
// enabled.
|
||||||
|
# if defined(__OPTIMIZE__)
|
||||||
|
# define LLVM_IS_DEBUG_BUILD 0
|
||||||
|
# else
|
||||||
|
# define LLVM_IS_DEBUG_BUILD 1
|
||||||
|
# endif
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
// MSVC doesn't have a predefined macro indicating if optimizations are enabled.
|
||||||
|
// Use _DEBUG instead. This macro actually corresponds to the choice between
|
||||||
|
// debug and release CRTs, but it is a reasonable proxy.
|
||||||
|
# if defined(_DEBUG)
|
||||||
|
# define LLVM_IS_DEBUG_BUILD 1
|
||||||
|
# else
|
||||||
|
# define LLVM_IS_DEBUG_BUILD 0
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
// Otherwise, for an unknown compiler, assume this is an optimized build.
|
||||||
|
# define LLVM_IS_DEBUG_BUILD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
class VersionPrinter {
|
class VersionPrinter {
|
||||||
public:
|
public:
|
||||||
|
@ -2451,7 +2473,7 @@ public:
|
||||||
OS << " " << LLVM_VERSION_INFO;
|
OS << " " << LLVM_VERSION_INFO;
|
||||||
#endif
|
#endif
|
||||||
OS << "\n ";
|
OS << "\n ";
|
||||||
#ifndef __OPTIMIZE__
|
#if LLVM_IS_DEBUG_BUILD
|
||||||
OS << "DEBUG build";
|
OS << "DEBUG build";
|
||||||
#else
|
#else
|
||||||
OS << "Optimized build";
|
OS << "Optimized build";
|
||||||
|
|
Loading…
Reference in New Issue