mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	add missing error checking #6492
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									dbb4bbe7dc
								
							
						
					
					
						commit
						c4b2acac24
					
				
					 1 changed files with 8 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -1919,21 +1919,21 @@ namespace z3 {
 | 
			
		|||
    inline expr operator>(expr const & a, int b) { return a > a.ctx().num_val(b, a.get_sort()); }
 | 
			
		||||
    inline expr operator>(int a, expr const & b) { return b.ctx().num_val(a, b.get_sort()) > b; }
 | 
			
		||||
 | 
			
		||||
    inline expr operator&(expr const & a, expr const & b) { if (a.is_bool()) return a && b; check_context(a, b); Z3_ast r = Z3_mk_bvand(a.ctx(), a, b); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr operator&(expr const & a, expr const & b) { if (a.is_bool()) return a && b; check_context(a, b); Z3_ast r = Z3_mk_bvand(a.ctx(), a, b); a.check_error(); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr operator&(expr const & a, int b) { return a & a.ctx().num_val(b, a.get_sort()); }
 | 
			
		||||
    inline expr operator&(int a, expr const & b) { return b.ctx().num_val(a, b.get_sort()) & b; }
 | 
			
		||||
 | 
			
		||||
    inline expr operator^(expr const & a, expr const & b) { check_context(a, b); Z3_ast r = a.is_bool() ? Z3_mk_xor(a.ctx(), a, b) : Z3_mk_bvxor(a.ctx(), a, b); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr operator^(expr const & a, expr const & b) { check_context(a, b); Z3_ast r = a.is_bool() ? Z3_mk_xor(a.ctx(), a, b) : Z3_mk_bvxor(a.ctx(), a, b); a.check_error(); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr operator^(expr const & a, int b) { return a ^ a.ctx().num_val(b, a.get_sort()); }
 | 
			
		||||
    inline expr operator^(int a, expr const & b) { return b.ctx().num_val(a, b.get_sort()) ^ b; }
 | 
			
		||||
 | 
			
		||||
    inline expr operator|(expr const & a, expr const & b) { if (a.is_bool()) return a || b; check_context(a, b); Z3_ast r = Z3_mk_bvor(a.ctx(), a, b); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr operator|(expr const & a, expr const & b) { if (a.is_bool()) return a || b; check_context(a, b); Z3_ast r = Z3_mk_bvor(a.ctx(), a, b); a.check_error(); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr operator|(expr const & a, int b) { return a | a.ctx().num_val(b, a.get_sort()); }
 | 
			
		||||
    inline expr operator|(int a, expr const & b) { return b.ctx().num_val(a, b.get_sort()) | b; }
 | 
			
		||||
 | 
			
		||||
    inline expr nand(expr const& a, expr const& b) { if (a.is_bool()) return !(a && b); check_context(a, b); Z3_ast r = Z3_mk_bvnand(a.ctx(), a, b); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr nor(expr const& a, expr const& b) { if (a.is_bool()) return !(a || b); check_context(a, b); Z3_ast r = Z3_mk_bvnor(a.ctx(), a, b); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr xnor(expr const& a, expr const& b) { if (a.is_bool()) return !(a ^ b); check_context(a, b); Z3_ast r = Z3_mk_bvxnor(a.ctx(), a, b); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr nand(expr const& a, expr const& b) { if (a.is_bool()) return !(a && b); check_context(a, b); Z3_ast r = Z3_mk_bvnand(a.ctx(), a, b); a.check_error(); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr nor(expr const& a, expr const& b) { if (a.is_bool()) return !(a || b); check_context(a, b); Z3_ast r = Z3_mk_bvnor(a.ctx(), a, b); a.check_error(); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr xnor(expr const& a, expr const& b) { if (a.is_bool()) return !(a ^ b); check_context(a, b); Z3_ast r = Z3_mk_bvxnor(a.ctx(), a, b); a.check_error(); return expr(a.ctx(), r); }
 | 
			
		||||
    inline expr min(expr const& a, expr const& b) { 
 | 
			
		||||
        check_context(a, b); 
 | 
			
		||||
        Z3_ast r;
 | 
			
		||||
| 
						 | 
				
			
			@ -1947,6 +1947,7 @@ namespace z3 {
 | 
			
		|||
            assert(a.is_fpa());
 | 
			
		||||
            r = Z3_mk_fpa_min(a.ctx(), a, b); 
 | 
			
		||||
        }
 | 
			
		||||
        a.check_error();
 | 
			
		||||
        return expr(a.ctx(), r); 
 | 
			
		||||
    }
 | 
			
		||||
    inline expr max(expr const& a, expr const& b) { 
 | 
			
		||||
| 
						 | 
				
			
			@ -1962,6 +1963,7 @@ namespace z3 {
 | 
			
		|||
            assert(a.is_fpa());
 | 
			
		||||
            r = Z3_mk_fpa_max(a.ctx(), a, b); 
 | 
			
		||||
        }
 | 
			
		||||
        a.check_error();
 | 
			
		||||
        return expr(a.ctx(), r); 
 | 
			
		||||
    }
 | 
			
		||||
    inline expr bvredor(expr const & a) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue