From a9bf4dfa588f00edc339a8b0cf36c8f6f52981f9 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Tue, 27 Mar 2018 22:20:49 +0200 Subject: [PATCH] work around some g++-7.3 issues * spot/twaalgos/langmap.cc, spot/ltsmin/ltsmin.cc: Add asserts to hide spurious "potential null pointer dereference" messages. * spot/twaalgos/tau03opt.cc (color_ref): Initialize pc to nullptr even when is_cyan is true so that valgrind does not report pc being used uninitialized in is_white(). --- spot/ltsmin/ltsmin.cc | 4 ++++ spot/twaalgos/langmap.cc | 1 + spot/twaalgos/tau03opt.cc | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spot/ltsmin/ltsmin.cc b/spot/ltsmin/ltsmin.cc index 7757f554a..15c4e8cfe 100644 --- a/spot/ltsmin/ltsmin.cc +++ b/spot/ltsmin/ltsmin.cc @@ -233,6 +233,7 @@ namespace spot fixed_size_pool* p = static_cast(ctx->pool); spins_state* out = new(p->allocate()) spins_state(ctx->state_size, p); + assert(out != nullptr); memcpy(out->vars, dst, ctx->state_size * sizeof(int)); out->compute_hash(); ctx->transitions.emplace_back(out); @@ -250,6 +251,7 @@ namespace spot - sizeof(spins_compressed_state::vars) + sizeof(int) * csize); spins_compressed_state* out = new(mem) spins_compressed_state(csize, p); + assert(out != nullptr); memcpy(out->vars, ctx->compressed, csize * sizeof(int)); out->compute_hash(); ctx->transitions.emplace_back(out); @@ -710,6 +712,7 @@ namespace spot + sizeof(int) * csize); spins_compressed_state* res = new(mem) spins_compressed_state(csize, p); + assert(res != nullptr); memcpy(res->vars, compressed_, csize * sizeof(int)); res->compute_hash(); return res; @@ -718,6 +721,7 @@ namespace spot { fixed_size_pool* p = const_cast(&statepool_); spins_state* res = new(p->allocate()) spins_state(state_size_, p); + assert(res != nullptr); d_->get_initial_state(res->vars); res->compute_hash(); return res; diff --git a/spot/twaalgos/langmap.cc b/spot/twaalgos/langmap.cc index a49386717..970559e0f 100644 --- a/spot/twaalgos/langmap.cc +++ b/spot/twaalgos/langmap.cc @@ -44,6 +44,7 @@ namespace spot for (unsigned i = 0; i < n_states; ++i) { twa_graph_ptr c = make_twa_graph(aut, twa::prop_set::all()); + assert(c); // for some reason g++ 7.3 thinks this could be null c->set_init_state(i); alt_init_st_auts[i] = c; compl_alt_init_st_auts[i] = remove_fin(dualize(c)); diff --git a/spot/twaalgos/tau03opt.cc b/spot/twaalgos/tau03opt.cc index 9b9907605..35f988a38 100644 --- a/spot/twaalgos/tau03opt.cc +++ b/spot/twaalgos/tau03opt.cc @@ -407,7 +407,7 @@ namespace spot public: color_ref(hash_type* h, hcyan_type* hc, const state* s, const weight* w, acc_cond::mark_t* a) - : is_cyan(true), w(w), ph(h), phc(hc), ps(s), acc(a) + : is_cyan(true), w(w), ph(h), phc(hc), ps(s), pc(nullptr), acc(a) { } color_ref(color* c, acc_cond::mark_t* a)