18 irep_idt current_file, current_function;
20 for(
auto &property : properties)
22 const auto &l =
property.source_location;
24 if(l.get_function() != current_function)
26 if(!current_function.
empty())
28 current_function = l.get_function();
29 if(!current_function.
empty())
31 current_file = l.get_file();
32 if(!current_file.
empty())
34 if(!l.get_function().empty())
40 auto property_id =
property.property_id();
42 if(property_id.empty())
48 if(l.get_file() != current_file)
51 if(!l.get_line().empty())
60 switch(property.status)
66 case propertyt::REFUTED:
70 case propertyt::ERROR:
75 case propertyt::DROPPED:
80 case propertyt::UNKNOWN:
88 << std::chrono::duration<double>(property.stop - property.start).count()
100 for(
auto &property : properties)
101 if(property.status == propertyt::ERROR)
103 else if(property.status == propertyt::DROPPED)
105 else if(property.status == propertyt::REFUTED)
static std::ostream & yellow(std::ostream &)
static std::ostream & reset(std::ostream &)
static std::ostream & green(std::ostream &)
static std::ostream & faint(std::ostream &)
static std::ostream & bold(std::ostream &)
static std::ostream & red(std::ostream &)
static std::ostream & out()
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
static std::string comment(const rw_set_baset::entryt &entry, bool write)
solver_resultt overall_outcome(const std::vector< propertyt > &properties)
void report_properties(const std::vector< propertyt > &properties)