3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 10:25:18 +00:00

NULL-initialize pointers to help GCC static analyzer Fixes: variable may be used uninitialized

This commit is contained in:
Daniel Schemmel 2018-05-19 03:19:57 +02:00
parent 1cc4a4ccc5
commit 5134c16833
No known key found for this signature in database
GPG key ID: A176732062461ECC
4 changed files with 17 additions and 16 deletions

View file

@ -431,7 +431,8 @@ struct poly_rewriter<Config>::hoist_cmul_lt {
hoist_cmul_lt(poly_rewriter<Config> & r):m_r(r) {}
bool operator()(expr * t1, expr * t2) const {
expr * pp1, * pp2;
expr * pp1 = nullptr;
expr * pp2 = nullptr;
numeral c1, c2;
bool is_mul1 = m_r.is_mul(t1, c1, pp1);
bool is_mul2 = m_r.is_mul(t2, c2, pp2);

View file

@ -336,9 +336,9 @@ void rewriter_tpl<Config>::process_app(app * t, frame & fr) {
UNREACHABLE();
}
// TODO: add rewrite rules support
expr * def;
proof * def_pr;
quantifier * def_q;
expr * def = nullptr;
proof * def_pr = nullptr;
quantifier * def_q = nullptr;
// When get_macro succeeds, then
// we know that:
// forall X. f(X) = def[X]

View file

@ -1423,9 +1423,9 @@ namespace smt {
// len(hd) = i
// str.indexof(tl, N, 0)
expr * H; // "haystack"
expr * N; // "needle"
expr * i; // start index
expr * H = nullptr; // "haystack"
expr * N = nullptr; // "needle"
expr * i = nullptr; // start index
u.str.is_index(e, H, N, i);
expr_ref minus_one(m_autil.mk_numeral(rational::minus_one(), true), m);
@ -6951,8 +6951,8 @@ namespace smt {
ast_manager & m = get_manager();
expr_ref_vector rhs(m);
expr * str;
expr * re;
expr * str = nullptr;
expr * re = nullptr;
u.str.is_in_re(str_in_re, str, re);
expr_ref strlen(mk_strlen(str), m);
@ -9929,8 +9929,8 @@ namespace smt {
bool regex_axiom_add = false;
for (obj_hashtable<expr>::iterator it = regex_terms.begin(); it != regex_terms.end(); ++it) {
expr * str_in_re = *it;
expr * str;
expr * re;
expr * str = nullptr;
expr * re = nullptr;
u.str.is_in_re(str_in_re, str, re);
lbool current_assignment = ctx.get_assignment(str_in_re);
TRACE("str", tout << "regex term: " << mk_pp(str, m) << " in " << mk_pp(re, m) << " : " << current_assignment << std::endl;);
@ -9944,7 +9944,7 @@ namespace smt {
if (regex_term_to_length_constraint.contains(str_in_re)) {
// use existing length constraint
expr * top_level_length_constraint;
expr * top_level_length_constraint = nullptr;
regex_term_to_length_constraint.find(str_in_re, top_level_length_constraint);
ptr_vector<expr> extra_length_vars;
@ -10473,8 +10473,8 @@ namespace smt {
// that's consistent with the current length information
for (ptr_vector<expr>::iterator term_it = str_in_re_terms.begin();
term_it != str_in_re_terms.end(); ++term_it) {
expr * _unused;
expr * re;
expr * _unused = nullptr;
expr * re = nullptr;
SASSERT(u.str.is_in_re(*term_it));
u.str.is_in_re(*term_it, _unused, re);

View file

@ -263,8 +263,8 @@ class solve_eqs_tactic : public tactic {
bool solve_arith_core(app * lhs, expr * rhs, expr * eq, app_ref & var, expr_ref & def, proof_ref & pr) {
SASSERT(m_a_util.is_add(lhs));
bool is_int = m_a_util.is_int(lhs);
expr * a;
expr * v;
expr * a = nullptr;
expr * v = nullptr;
rational a_val;
unsigned num = lhs->get_num_args();
unsigned i;