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;
|
||||
|
||||
#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 {
|
||||
class VersionPrinter {
|
||||
public:
|
||||
|
@ -2451,7 +2473,7 @@ public:
|
|||
OS << " " << LLVM_VERSION_INFO;
|
||||
#endif
|
||||
OS << "\n ";
|
||||
#ifndef __OPTIMIZE__
|
||||
#if LLVM_IS_DEBUG_BUILD
|
||||
OS << "DEBUG build";
|
||||
#else
|
||||
OS << "Optimized build";
|
||||
|
|
Loading…
Reference in New Issue