Make GTEST_DEFINE... macros also declare the flag to avoid triggering -Wmissing-variable-declarations
The alternate implementation based on ABSL_FLAG() already does this internally, so this resolves the inconsistency. Fixes: #4897 PiperOrigin-RevId: 952840499 Change-Id: I7b8f61d2e9a97ffcd3db091abc373c9d9b48db79
This commit is contained in:
committed by
Copybara-Service
parent
08da6214b8
commit
7f7595f67d
@@ -2308,22 +2308,29 @@ using TimeInMillis = int64_t; // Represents time in milliseconds.
|
|||||||
|
|
||||||
// Macros for defining flags.
|
// Macros for defining flags.
|
||||||
#define GTEST_DEFINE_bool_(name, default_val, doc) \
|
#define GTEST_DEFINE_bool_(name, default_val, doc) \
|
||||||
|
GTEST_DECLARE_bool_(name); \
|
||||||
namespace testing { \
|
namespace testing { \
|
||||||
GTEST_API_ bool GTEST_FLAG(name) = (default_val); \
|
GTEST_API_ bool GTEST_FLAG(name) = (default_val); \
|
||||||
} \
|
} \
|
||||||
static_assert(true, "no-op to require trailing semicolon")
|
static_assert(true, "no-op to require trailing semicolon")
|
||||||
#define GTEST_DEFINE_int32_(name, default_val, doc) \
|
#define GTEST_DEFINE_int32_(name, default_val, doc) \
|
||||||
|
GTEST_DECLARE_int32_(name); \
|
||||||
namespace testing { \
|
namespace testing { \
|
||||||
GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val); \
|
GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val); \
|
||||||
} \
|
} \
|
||||||
static_assert(true, "no-op to require trailing semicolon")
|
static_assert(true, "no-op to require trailing semicolon")
|
||||||
#define GTEST_DEFINE_string_(name, default_val, doc) \
|
#define GTEST_DEFINE_string_(name, default_val, doc) \
|
||||||
|
GTEST_DECLARE_string_(name); \
|
||||||
namespace testing { \
|
namespace testing { \
|
||||||
GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val); \
|
GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val); \
|
||||||
} \
|
} \
|
||||||
static_assert(true, "no-op to require trailing semicolon")
|
static_assert(true, "no-op to require trailing semicolon")
|
||||||
|
|
||||||
// Macros for declaring flags.
|
// Macros for declaring flags.
|
||||||
|
//
|
||||||
|
// We also need to declare the flag in the public namespace to avoid triggering
|
||||||
|
// -Wmissing-variable-declarations warnings, as reported here:
|
||||||
|
// https://github.com/google/googletest/issues/4897
|
||||||
#define GTEST_DECLARE_bool_(name) \
|
#define GTEST_DECLARE_bool_(name) \
|
||||||
namespace testing { \
|
namespace testing { \
|
||||||
GTEST_API_ extern bool GTEST_FLAG(name); \
|
GTEST_API_ extern bool GTEST_FLAG(name); \
|
||||||
|
|||||||
Reference in New Issue
Block a user