From fc205c18839b44e2e38a2d471d72bda0d0a3dae6 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 c893793b7..d984650e8 100644 --- a/spot/ltsmin/ltsmin.cc +++ b/spot/ltsmin/ltsmin.cc @@ -234,6 +234,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); @@ -251,6 +252,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); @@ -711,6 +713,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; @@ -719,6 +722,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 3ba6b3b23..a3a77715d 100644 --- a/spot/twaalgos/langmap.cc +++ b/spot/twaalgos/langmap.cc @@ -45,6 +45,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 494145afe..038ebabe4 100644 --- a/spot/twaalgos/tau03opt.cc +++ b/spot/twaalgos/tau03opt.cc @@ -408,7 +408,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)