Index: util/misc/initialization_state_dcheck.h |
diff --git a/util/misc/initialization_state_dcheck.h b/util/misc/initialization_state_dcheck.h |
index 11501bc754b065514ca1e44739d5393acf28dc64..d40aab5f751a93e4f8981003bc98a26ecc623d83 100644 |
--- a/util/misc/initialization_state_dcheck.h |
+++ b/util/misc/initialization_state_dcheck.h |
@@ -164,15 +164,29 @@ class InitializationStateDcheck : public InitializationState { |
// objects of the DCHECK_IS_ON InitializationStateDcheck class above. |
typedef bool InitializationStateDcheck[0]; |
+namespace internal { |
+ |
+// This function exists to make use of the InitializationStateDcheck object so |
+// that it appears to be used. It always returns true, so that it can be used |
+// as the argument to a no-op DCHECK. |
+inline bool EatInitializationState(const InitializationStateDcheck*) { |
+ return true; |
+} |
+ |
+} // namepspace internal |
+ |
// The contents of these DCHECKs will never be evaluated, but they make use of |
// initialization_state_dcheck to avoid triggering -Wunused-private-field |
// warnings. |
#define INITIALIZATION_STATE_SET_INITIALIZING(initialization_state_dcheck) \ |
- DCHECK(&(initialization_state_dcheck)) |
+ DCHECK(::crashpad::internal::EatInitializationState( \ |
+ &(initialization_state_dcheck))) |
#define INITIALIZATION_STATE_SET_VALID(initialization_state_dcheck) \ |
- DCHECK(&(initialization_state_dcheck)) |
+ DCHECK(::crashpad::internal::EatInitializationState( \ |
+ &(initialization_state_dcheck))) |
#define INITIALIZATION_STATE_DCHECK_VALID(initialization_state_dcheck) \ |
- DCHECK(&(initialization_state_dcheck)) |
+ DCHECK(::crashpad::internal::EatInitializationState( \ |
+ &(initialization_state_dcheck))) |
#endif |