From 69df130a50b94f86e4ef3fae61b68bfa2bbaccca Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christophe=20Thi=C3=A9ry?= Date: Fri, 28 Oct 2011 10:58:55 +0200 Subject: [PATCH] With optimizations, gcc 4.6 warns about clobbered variables --- src/amok/Bandwidth/bandwidth.c | 8 +++---- src/amok/Bandwidth/saturate.c | 10 ++++---- src/gras/DataDesc/ddt_parse.c | 2 +- src/gras/Msg/gras_msg_exchange.c | 4 ++-- src/gras/Msg/gras_msg_types.c | 40 ++++++++------------------------ src/simix/smx_host.c | 8 +++---- src/xbt/config.c | 2 +- src/xbt/dict_multi.c | 3 ++- 8 files changed, 29 insertions(+), 48 deletions(-) diff --git a/src/amok/Bandwidth/bandwidth.c b/src/amok/Bandwidth/bandwidth.c index 9364c2e111..6372a56742 100644 --- a/src/amok/Bandwidth/bandwidth.c +++ b/src/amok/Bandwidth/bandwidth.c @@ -141,8 +141,8 @@ void amok_bw_test(gras_socket_t peer, { /* Measurement sockets for the experiments */ - gras_socket_t measMasterIn = NULL, measIn, measOut = NULL; - int port; + volatile gras_socket_t measMasterIn = NULL, measIn, measOut = NULL; + volatile int port; bw_request_t request, request_ack; xbt_ex_t e; int first_pass; @@ -289,8 +289,8 @@ void amok_bw_test(gras_socket_t peer, int amok_bw_cb_bw_handshake(gras_msg_cb_ctx_t ctx, void *payload) { gras_socket_t expeditor = gras_msg_cb_ctx_from(ctx); - gras_socket_t measMasterIn = NULL, measIn = NULL, measOut = NULL; - bw_request_t request = *(bw_request_t *) payload; + volatile gras_socket_t measMasterIn = NULL, measIn = NULL, measOut = NULL; + volatile bw_request_t request = *(bw_request_t *) payload; bw_request_t answer; xbt_ex_t e; int port; diff --git a/src/amok/Bandwidth/saturate.c b/src/amok/Bandwidth/saturate.c index 78e022e366..0f61258d14 100644 --- a/src/amok/Bandwidth/saturate.c +++ b/src/amok/Bandwidth/saturate.c @@ -129,7 +129,7 @@ static int amok_bw_cb_sat_start(gras_msg_cb_ctx_t ctx, void *payload) * each of the messages occupy the connexion one second */ void amok_bw_saturate_begin(const char *to_name, unsigned int to_port, - unsigned int msg_size, double duration, + volatile unsigned int msg_size, double duration, /*out */ double *elapsed_res, double *bw_res) { @@ -142,7 +142,7 @@ void amok_bw_saturate_begin(const char *to_name, unsigned int to_port, s_gras_msg_t msg_got; - unsigned int packet_sent = 0; + volatile unsigned int packet_sent = 0; double start, elapsed = -1; /* timer */ double bw; @@ -263,10 +263,10 @@ static int amok_bw_cb_sat_begin(gras_msg_cb_ctx_t ctx, void *payload) sat_request_t answer = xbt_new0(s_sat_request_t, 1); volatile int saturate_further = 1; xbt_ex_t e; - gras_socket_t measMaster = NULL, meas = NULL; - gras_socket_t from = gras_msg_cb_ctx_from(ctx); + volatile gras_socket_t measMaster = NULL, meas = NULL; + volatile gras_socket_t from = gras_msg_cb_ctx_from(ctx); - int port = 6000; + volatile int port = 6000; while (port <= 10000 && measMaster == NULL) { TRY { measMaster = gras_socket_server_ext(port, 0 /*bufsize: auto */ , diff --git a/src/gras/DataDesc/ddt_parse.c b/src/gras/DataDesc/ddt_parse.c index d2657a750e..ab540b9ec1 100644 --- a/src/gras/DataDesc/ddt_parse.c +++ b/src/gras/DataDesc/ddt_parse.c @@ -614,7 +614,7 @@ static gras_datadesc_type_t parse_struct(char *definition) xbt_dynar_t fields_to_push; char *name; - gras_datadesc_type_t struct_type; + volatile gras_datadesc_type_t struct_type; XBT_IN(""); identifiers = xbt_dynar_new(sizeof(s_identifier_t), NULL); diff --git a/src/gras/Msg/gras_msg_exchange.c b/src/gras/Msg/gras_msg_exchange.c index e1577320ac..bef735197c 100644 --- a/src/gras/Msg/gras_msg_exchange.c +++ b/src/gras/Msg/gras_msg_exchange.c @@ -290,7 +290,7 @@ void gras_msg_handleall(double period) * * @sa gras_msg_handleall(). */ -void gras_msg_handle(double timeOut) +void gras_msg_handle(volatile double timeOut) { double untiltimer; @@ -306,7 +306,7 @@ void gras_msg_handle(double timeOut) gras_msg_cb_t cb; s_gras_msg_cb_ctx_t ctx; - int timerexpected, timeouted; + volatile int timerexpected, timeouted; xbt_ex_t e; XBT_VERB("Handling message within the next %.2fs", timeOut); diff --git a/src/gras/Msg/gras_msg_types.c b/src/gras/Msg/gras_msg_types.c index fbf04a74a5..0054640061 100644 --- a/src/gras/Msg/gras_msg_types.c +++ b/src/gras/Msg/gras_msg_types.c @@ -78,23 +78,11 @@ gras_msgtype_declare_ext(const char *name, gras_msgtype_t msgtype = NULL; char *namev = make_namev(name, version); - volatile int found = 0; - xbt_ex_t e; - TRY { - msgtype = - (gras_msgtype_t) xbt_set_get_by_name(_gras_msgtype_set, namev); - found = 1; - } - CATCH(e) { - if (e.category != not_found_error) { - xbt_free(namev); - RETHROW; - } - xbt_ex_free(e); - } + msgtype = (gras_msgtype_t) xbt_set_get_by_name_or_null( + _gras_msgtype_set, (const char*) namev); - if (found) { + if (msgtype != NULL) { XBT_DEBUG ("Re-register version %d of message '%s' (same kind & payload, ignored).", version, name); @@ -104,13 +92,13 @@ gras_msgtype_declare_ext(const char *name, e_gras_msg_kind_names[msgtype->kind]); xbt_assert(!gras_datadesc_type_cmp (msgtype->ctn_type, payload_request), - "Message %s re-registred with another payload (%s was %s)", + "Message %s re-registered with another payload (%s was %s)", namev, gras_datadesc_get_name(payload_request), gras_datadesc_get_name(msgtype->ctn_type)); xbt_assert(!gras_datadesc_type_cmp (msgtype->answer_type, payload_answer), - "Message %s re-registred with another answer payload (%s was %s)", + "Message %s re-registered with another answer payload (%s was %s)", namev, gras_datadesc_get_name(payload_answer), gras_datadesc_get_name(msgtype->answer_type)); @@ -196,22 +184,14 @@ gras_msgtype_t gras_msgtype_by_namev(const char *name, short int version) { gras_msgtype_t res = NULL; char *namev = make_namev(name, version); - volatile int found = 0; - xbt_ex_t e; - - TRY { - res = (gras_msgtype_t) xbt_set_get_by_name(_gras_msgtype_set, namev); - found = 1; - } - CATCH(e) { - xbt_ex_free(e); - } - if (!found) - THROWF(not_found_error, 0, "No registred message of that name: %s", - name); + res = (gras_msgtype_t) xbt_set_get_by_name_or_null(_gras_msgtype_set, namev); free(namev); + if (res == NULL) + THROWF(not_found_error, 0, "No registered message of that name: %s", + name); + return res; } diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 29589b1f4d..fa2d965d00 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -331,7 +331,7 @@ void SIMIX_host_execution_resume(smx_action_t action) void SIMIX_execution_finish(smx_action_t action) { - xbt_fifo_item_t item; + volatile xbt_fifo_item_t item; smx_req_t req; xbt_fifo_foreach(action->request_list, item, req, smx_req_t) { @@ -339,13 +339,13 @@ void SIMIX_execution_finish(smx_action_t action) switch (action->state) { case SIMIX_DONE: - /* do nothing, action done*/ + /* do nothing, action done */ XBT_DEBUG("SIMIX_execution_finished: execution successful"); break; case SIMIX_FAILED: + XBT_DEBUG("SIMIX_execution_finished: host '%s' failed", req->issuer->smx_host->name); TRY { - XBT_DEBUG("SIMIX_execution_finished: host '%s' failed", req->issuer->smx_host->name); THROWF(host_error, 0, "Host failed"); } CATCH(req->issuer->running_ctx->exception) { @@ -354,8 +354,8 @@ void SIMIX_execution_finish(smx_action_t action) break; case SIMIX_CANCELED: + XBT_DEBUG("SIMIX_execution_finished: execution canceled"); TRY { - XBT_DEBUG("SIMIX_execution_finished: execution canceled"); THROWF(cancel_error, 0, "Canceled"); } CATCH(req->issuer->running_ctx->exception) { diff --git a/src/xbt/config.c b/src/xbt/config.c index a9071df134..13df108f0f 100644 --- a/src/xbt/config.c +++ b/src/xbt/config.c @@ -589,7 +589,7 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options) double d; char *str; - xbt_cfgelm_t variable = NULL; + volatile xbt_cfgelm_t variable = NULL; char *optionlist_cpy; char *option, *name, *val; diff --git a/src/xbt/dict_multi.c b/src/xbt/dict_multi.c index 6dc05e09f2..e6152046b4 100644 --- a/src/xbt/dict_multi.c +++ b/src/xbt/dict_multi.c @@ -183,7 +183,8 @@ void xbt_multidict_remove_ext(xbt_dict_t mdict, xbt_dynar_t keys, xbt_dynar_t lens) { - xbt_dict_t thislevel, nextlevel = NULL; + volatile xbt_dict_t thislevel; + volatile xbt_dict_t nextlevel = NULL; int i; xbt_ex_t e; -- 2.20.1