sim: Make WITH_{TRACE,PROFILE}-based macros bool
authorTsukasa OI <research_trasio@irq.a4lg.com>
Thu, 6 Oct 2022 06:43:50 +0000 (06:43 +0000)
committerAndrew Burgess <aburgess@redhat.com>
Tue, 11 Oct 2022 14:18:14 +0000 (15:18 +0100)
Clang generates a warning if there is an ambiguous expression (possibly a
bitwise operation (& or |), but a logical operator (&& or ||) is used;
"-Wconstant-logical-operand").  On the default configuration, it causes a
build failure (unless "--disable-werror" is specified).

This is caused by predicate macros that use the form (base_variable & flag).
Clang considers them as regular integer values (not boolean) and
generates that warning.

This commit makes Clang think those predicate macros to be boolean.

sim/common/sim-profile.h
sim/common/sim-trace.h

index 61d5039e10d09c18cf99dbee35475701235e1e44..d072621a514ac4c9443e1a3a59f628d244475ac6 100644 (file)
@@ -87,12 +87,12 @@ SIM_RC sim_profile_set_option (SIM_DESC sd_, const char *name_, int idx_,
 #define PROFILE_core   (1 << PROFILE_CORE_IDX)
 
 /* Preprocessor macros to simplify tests of WITH_PROFILE.  */
-#define WITH_PROFILE_INSN_P (WITH_PROFILE & PROFILE_insn)
-#define WITH_PROFILE_MEMORY_P (WITH_PROFILE & PROFILE_memory)
-#define WITH_PROFILE_MODEL_P (WITH_PROFILE & PROFILE_model)
-#define WITH_PROFILE_SCACHE_P (WITH_PROFILE & PROFILE_scache)
-#define WITH_PROFILE_PC_P (WITH_PROFILE & PROFILE_pc)
-#define WITH_PROFILE_CORE_P (WITH_PROFILE & PROFILE_core)
+#define WITH_PROFILE_INSN_P   ((WITH_PROFILE & PROFILE_insn) != 0)
+#define WITH_PROFILE_MEMORY_P ((WITH_PROFILE & PROFILE_memory) != 0)
+#define WITH_PROFILE_MODEL_P  ((WITH_PROFILE & PROFILE_model) != 0)
+#define WITH_PROFILE_SCACHE_P ((WITH_PROFILE & PROFILE_scache) != 0)
+#define WITH_PROFILE_PC_P     ((WITH_PROFILE & PROFILE_pc) != 0)
+#define WITH_PROFILE_CORE_P   ((WITH_PROFILE & PROFILE_core) != 0)
 
 /* If MAX_TARGET_MODES isn't defined, we can't do memory profiling.
    ??? It is intended that this is a temporary occurrence.  Normally
index d08810d9fccde34ef579dd7f35b7bcbe28c67b0c..8d4ab13081533564a75016d5c42af0b927cbf3b0 100644 (file)
@@ -125,10 +125,10 @@ enum {
 #define TRACE_debug    (1 << TRACE_DEBUG_IDX)
 
 /* Return non-zero if tracing of idx is enabled (compiled in).  */
-#define WITH_TRACE_P(idx)      (WITH_TRACE & (1 << idx))
+#define WITH_TRACE_P(idx)      ((WITH_TRACE & (1 << idx)) != 0)
 
 /* Preprocessor macros to simplify tests of WITH_TRACE.  */
-#define WITH_TRACE_ANY_P       (WITH_TRACE)
+#define WITH_TRACE_ANY_P       (WITH_TRACE != 0)
 #define WITH_TRACE_INSN_P      WITH_TRACE_P (TRACE_INSN_IDX)
 #define WITH_TRACE_DISASM_P    WITH_TRACE_P (TRACE_DISASM_IDX)
 #define WITH_TRACE_DECODE_P    WITH_TRACE_P (TRACE_DECODE_IDX)