From 54ed36e3c09b159df25feb7a8a11b277fe357ecf Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 22 Sep 2014 09:29:41 +0200 Subject: [PATCH] nmtst: fix compiler warnings and make initialization of macro variables explict clang warns about uninitialized variables @__cur_setting_name and @__cur_property_name as used inside @__code. Before calling to @__code, explicitly initialize the values. Making all in tests make[4]: Entering directory `./NetworkManager/libnm-core/tests' CC test-general.o test-general.c:2730:24: error: variable '__cur_property_name' is uninitialized when used here [-Werror,-Wuninitialized] NMTST_VARIANT_DROP_PROPERTY (NM_SETTING_CONNECTION_SETTING_NAME, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../include/nm-test-utils.h:1079:20: note: expanded from macro 'NMTST_VARIANT_DROP_PROPERTY' && !strcmp (__cur_property_name, __property_name)) \ ^~~~~~~~~~~~~~~~~~~ ../../include/nm-test-utils.h:1023:3: note: expanded from macro 'NMTST_VARIANT_EDITOR' __code; \ ^ test-general.c:2729:2: note: variable '__cur_property_name' is declared here NMTST_VARIANT_EDITOR (connection_dict, ^ ../../include/nm-test-utils.h:1015:3: note: expanded from macro 'NMTST_VARIANT_EDITOR' const char *__cur_setting_name, *__cur_property_name; \ ^ [...] Signed-off-by: Thomas Haller --- include/nm-test-utils.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/nm-test-utils.h b/include/nm-test-utils.h index 9c41306e93..e296df044b 100644 --- a/include/nm-test-utils.h +++ b/include/nm-test-utils.h @@ -1020,13 +1020,17 @@ typedef enum { g_variant_iter_init (&__connection_iter, __connection_variant); \ \ __phase = NMTST_VARIANT_EDITOR_CONNECTION; \ + __cur_setting_name = NULL; \ + __cur_property_name = NULL; \ __code; \ while (g_variant_iter_next (&__connection_iter, "{&sa{sv}}", &__cur_setting_name, &__setting_iter)) { \ g_variant_builder_init (&__setting_builder, NM_VARIANT_TYPE_SETTING); \ __phase = NMTST_VARIANT_EDITOR_SETTING; \ + __cur_property_name = NULL; \ __code; \ \ - while (g_variant_iter_next (__setting_iter, "{&sv}", &__cur_property_name, &__property_val)) { \ + while ( __cur_setting_name \ + && g_variant_iter_next (__setting_iter, "{&sv}", &__cur_property_name, &__property_val)) { \ __phase = NMTST_VARIANT_EDITOR_PROPERTY; \ __code; \ \