Commit fc205c18 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

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().
parent 095d0199
......@@ -234,6 +234,7 @@ namespace spot
fixed_size_pool* p = static_cast<fixed_size_pool*>(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<fixed_size_pool*>(&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;
......
......@@ -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));
......
......@@ -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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment