Fix: add missing cases in enum-to-string functions
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 10 Nov 2021 15:17:41 +0000 (10:17 -0500)
committerFrancis Deslauriers <francis.deslauriers@efficios.com>
Thu, 11 Nov 2021 22:47:54 +0000 (17:47 -0500)
Change the enum-to-string functions to not use a default case, such that
the compiler will give a -Wswitch warning if an enumerator is not
handled.  Add some missing ones found by such warnings.

Put a bt_common_abort call after each switch (rather than returning
"(unknown)", because there's no way in theory that we can reach that.
Having anything else would be a bug we would want to fix in babeltrace.

Change-Id: I2cfae112386aede4844062be51dba009a1e9a056
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/6693
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
src/common/common.h
src/lib/graph/message/message.h
src/plugins/ctf/common/bfcr/bfcr.c
src/plugins/ctf/common/bfcr/bfcr.h
src/plugins/ctf/common/msg-iter/msg-iter.c
src/plugins/ctf/common/msg-iter/msg-iter.h

index 19f4c128443acafbac5b0efe1bd8f6dd42d61539..2cad30767a28fad9581130c6c53e8f6e40e3ba3f 100644 (file)
@@ -485,14 +485,20 @@ const char *bt_common_field_class_type_string(enum bt_field_class_type class_typ
                return "BOOL";
        case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
                return "BIT_ARRAY";
+       case BT_FIELD_CLASS_TYPE_INTEGER:
+               return "INTEGER";
        case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
                return "UNSIGNED_INTEGER";
        case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
                return "SIGNED_INTEGER";
+       case BT_FIELD_CLASS_TYPE_ENUMERATION:
+               return "ENUMERATION";
        case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
                return "UNSIGNED_ENUMERATION";
        case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
                return "SIGNED_ENUMERATION";
+       case BT_FIELD_CLASS_TYPE_REAL:
+               return "REAL";
        case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
                return "SINGLE_PRECISION_REAL";
        case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
@@ -501,29 +507,47 @@ const char *bt_common_field_class_type_string(enum bt_field_class_type class_typ
                return "STRING";
        case BT_FIELD_CLASS_TYPE_STRUCTURE:
                return "STRUCTURE";
+       case BT_FIELD_CLASS_TYPE_ARRAY:
+               return "ARRAY";
        case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
                return "STATIC_ARRAY";
+       case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
+               return "DYNAMIC_ARRAY";
        case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
                return "DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD";
        case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
                return "DYNAMIC_ARRAY_WITH_LENGTH_FIELD";
+       case BT_FIELD_CLASS_TYPE_OPTION:
+               return "OPTION";
        case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD:
                return "OPTION_WITHOUT_SELECTOR_FIELD";
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD:
+               return "OPTION_WITH_SELECTOR_FIELD";
        case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD:
                return "OPTION_WITH_BOOL_SELECTOR_FIELD";
+       case BT_FIELD_CLASS_TYPE_OPTION_WITH_INTEGER_SELECTOR_FIELD:
+               return "OPTION_WITH_INTEGER_SELECTOR_FIELD";
        case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
                return "OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD";
        case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
                return "OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD";
+       case BT_FIELD_CLASS_TYPE_VARIANT:
+               return "VARIANT";
        case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
                return "VARIANT_WITHOUT_SELECTOR_FIELD";
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD:
+               return "VARIANT_WITH_SELECTOR_FIELD";
+       case BT_FIELD_CLASS_TYPE_VARIANT_WITH_INTEGER_SELECTOR_FIELD:
+               return "VARIANT_WITH_INTEGER_SELECTOR_FIELD";
        case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
                return "VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD";
        case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
                return "VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD";
-       default:
-               return "(unknown)";
+       case __BT_FIELD_CLASS_TYPE_BIG_VALUE:
+               bt_common_abort ();
        }
+
+       bt_common_abort();
 };
 
 static inline
@@ -538,9 +562,9 @@ const char *bt_common_field_class_integer_preferred_display_base_string(enum bt_
                return "DECIMAL";
        case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL:
                return "HEXADECIMAL";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 static inline
@@ -555,9 +579,9 @@ const char *bt_common_scope_string(enum bt_field_path_scope scope)
                return "EVENT_SPECIFIC_CONTEXT";
        case BT_FIELD_PATH_SCOPE_EVENT_PAYLOAD:
                return "EVENT_PAYLOAD";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 static inline
@@ -595,9 +619,9 @@ const char *bt_common_event_class_log_level_string(
                return "DEBUG_LINE";
        case BT_EVENT_CLASS_LOG_LEVEL_DEBUG:
                return "DEBUG";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 };
 
 static inline
@@ -608,6 +632,8 @@ const char *bt_common_value_type_string(enum bt_value_type type)
                return "NULL";
        case BT_VALUE_TYPE_BOOL:
                return "BOOL";
+       case BT_VALUE_TYPE_INTEGER:
+               return "INTEGER";
        case BT_VALUE_TYPE_UNSIGNED_INTEGER:
                return "UNSIGNED_INTEGER";
        case BT_VALUE_TYPE_SIGNED_INTEGER:
@@ -620,9 +646,9 @@ const char *bt_common_value_type_string(enum bt_value_type type)
                return "ARRAY";
        case BT_VALUE_TYPE_MAP:
                return "MAP";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 };
 
 static inline
@@ -682,9 +708,9 @@ const char *bt_common_logging_level_string(
                return "FATAL";
        case BT_LOGGING_LEVEL_NONE:
                return "NONE";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 };
 
 static inline
@@ -711,9 +737,9 @@ const char *bt_common_func_status_string(int status)
                return "AGAIN";
        case __BT_FUNC_STATUS_INTERRUPTED:
                return "INTERRUPTED";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 #define NS_PER_S_I     INT64_C(1000000000)
@@ -864,9 +890,9 @@ const char *bt_common_component_class_type_string(
                return "SINK";
        case BT_COMPONENT_CLASS_TYPE_FILTER:
                return "FILTER";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 #ifdef __cplusplus
index 8a707170c3fb02b2e54849ead00b03d7e2b9a235..8e87a76522a266f6a3ec9f60a89b91e0b6fbaa28 100644 (file)
@@ -99,23 +99,25 @@ static inline
 const char *bt_message_type_string(enum bt_message_type type)
 {
        switch (type) {
-       case BT_MESSAGE_TYPE_EVENT:
-               return "EVENT";
-       case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY:
-               return "MESSAGE_ITERATOR_INACTIVITY";
        case BT_MESSAGE_TYPE_STREAM_BEGINNING:
                return "STREAM_BEGINNING";
        case BT_MESSAGE_TYPE_STREAM_END:
                return "STREAM_END";
+       case BT_MESSAGE_TYPE_EVENT:
+               return "EVENT";
        case BT_MESSAGE_TYPE_PACKET_BEGINNING:
                return "PACKET_BEGINNING";
        case BT_MESSAGE_TYPE_PACKET_END:
                return "PACKET_END";
        case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
                return "DISCARDED_EVENTS";
-       default:
-               return "(unknown)";
+       case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
+               return "DISCARDED_PACKETS";
+       case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY:
+               return "MESSAGE_ITERATOR_INACTIVITY";
        }
+
+       bt_common_abort();
 }
 
 #endif /* BABELTRACE_GRAPH_MESSAGE_MESSAGE_INTERNAL_H */
index e3c851793c74595d8f38f8454deedded463784a0..eba591c71bcdd30ce91146962a38e26163e29ec3 100644 (file)
@@ -167,9 +167,9 @@ const char *bfcr_state_string(enum bfcr_state state)
                return "READ_BASIC_CONTINUE";
        case BFCR_STATE_DONE:
                return "DONE";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 static
index eced5027fa7be1287a597cb42e0d512adeffc6fa..8326e310c315a2994ae2adcb7e361846249047f3 100644 (file)
@@ -355,9 +355,9 @@ const char *bt_bfcr_status_string(enum bt_bfcr_status status)
                return "ERROR";
        case BT_BFCR_STATUS_OK:
                return "OK";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 #endif /* CTF_BFCR_H */
index 9739a6052c439482526dd561cf839104c8091852..7789aa15cdaf8341a1cb1253b6cd05279758a354 100644 (file)
@@ -275,6 +275,10 @@ const char *state_string(enum state state)
                return "AFTER_STREAM_PACKET_CONTEXT";
        case STATE_EMIT_MSG_STREAM_BEGINNING:
                return "EMIT_MSG_STREAM_BEGINNING";
+       case STATE_CHECK_EMIT_MSG_DISCARDED_EVENTS:
+               return "CHECK_EMIT_MSG_DISCARDED_EVENTS";
+       case STATE_CHECK_EMIT_MSG_DISCARDED_PACKETS:
+               return "CHECK_EMIT_MSG_DISCARDED_PACKETS";
        case STATE_EMIT_MSG_PACKET_BEGINNING:
                return "EMIT_MSG_PACKET_BEGINNING";
        case STATE_EMIT_MSG_DISCARDED_EVENTS:
@@ -317,9 +321,9 @@ const char *state_string(enum state state)
                return "EMIT_MSG_STREAM_END";
        case STATE_DONE:
                return "DONE";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 static
index 8b662ee38084757e6fac9b4e7e9dd7a11206a9f1..edba6847793ee2158b1d87bdecc897e67cfbdb9c 100644 (file)
@@ -328,11 +328,13 @@ const char *ctf_msg_iter_medium_status_string(
                return "AGAIN";
        case CTF_MSG_ITER_MEDIUM_STATUS_ERROR:
                return "ERROR";
+       case CTF_MSG_ITER_MEDIUM_STATUS_MEMORY_ERROR:
+               return "MEMORY_ERROR";
        case CTF_MSG_ITER_MEDIUM_STATUS_OK:
                return "OK";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 static inline
@@ -346,11 +348,13 @@ const char *ctf_msg_iter_status_string(
                return "AGAIN";
        case CTF_MSG_ITER_STATUS_ERROR:
                return "ERROR";
+       case CTF_MSG_ITER_STATUS_MEMORY_ERROR:
+               return "MEMORY_ERROR";
        case CTF_MSG_ITER_STATUS_OK:
                return "OK";
-       default:
-               return "(unknown)";
        }
+
+       bt_common_abort();
 }
 
 #endif /* CTF_MSG_ITER_H */
This page took 0.029266 seconds and 4 git commands to generate.