@@ -9,72 +9,82 @@ static Ref<Logger> g_logger;
99
1010void ReportVerifier (Ref<AnalysisContext> context, ILVerifier& verifier)
1111{
12- std::vector<ILVerifier::Diagnostic> notes;
13- std::vector<ILVerifier::Diagnostic> remarks;
14- std::vector<ILVerifier::Diagnostic> warnings;
15- std::vector<ILVerifier::Diagnostic> errors;
12+ auto diags = verifier.GetDiagnostics ();
13+ size_t notes = 0 ;
14+ size_t remarks = 0 ;
15+ size_t warnings = 0 ;
16+ size_t errors = 0 ;
1617
17- for (auto & diag: verifier. GetDiagnostics () )
18+ for (auto & diag: diags )
1819 {
1920 switch (diag.severity )
2021 {
2122 case IgnoredSeverity:
2223 break ;
2324 case NoteSeverity:
24- notes. push_back (diag) ;
25+ notes += 1 ;
2526 break ;
2627 case RemarkSeverity:
27- remarks. push_back (diag) ;
28+ remarks += 1 ;
2829 break ;
2930 case WarningSeverity:
30- warnings. push_back (diag) ;
31+ warnings += 1 ;
3132 break ;
3233 case ErrorSeverity:
3334 case FatalSeverity:
34- errors. push_back (diag) ;
35+ errors += 1 ;
3536 break ;
3637 }
3738 }
3839
3940 bool debug = Settings::Instance ()->Get <bool >(" analysis.liftCheck.debug" , context->GetBinaryView ());
4041
41- if (errors. size () > 0 )
42+ if (errors > 0 )
4243 {
4344 g_logger->LogErrorF (
4445 " {:#x} failed: {} errors, {} warnings" ,
4546 context->GetFunction ()->GetStart (),
46- errors. size () ,
47- warnings. size ()
47+ errors,
48+ warnings
4849 );
4950 }
50- else if (warnings. size () > 0 || (debug && notes. size () > 0 && remarks. size () > 0 ))
51+ else if (warnings > 0 || (debug && notes > 0 && remarks > 0 ))
5152 {
5253 g_logger->LogErrorF (
5354 " {:#x} passed: {} errors, {} warnings" ,
5455 context->GetFunction ()->GetStart (),
55- errors. size () ,
56- warnings. size ()
56+ errors,
57+ warnings
5758 );
5859 }
59- if (debug )
60+ for ( auto & diag: diags )
6061 {
61- for (auto & diag: notes)
62- {
63- g_logger->LogInfoF (" {}" , diag.message );
64- }
65- for (auto & diag: remarks)
62+ switch (diag.severity )
6663 {
67- g_logger->LogInfoF (" {}" , diag.message );
64+ case IgnoredSeverity:
65+ break ;
66+ case NoteSeverity:
67+ if (debug)
68+ {
69+ g_logger->LogInfoF (" {}" , diag.message );
70+ }
71+ break ;
72+ case RemarkSeverity:
73+ if (debug)
74+ {
75+ g_logger->LogInfoF (" {}" , diag.message );
76+ }
77+ break ;
78+ case WarningSeverity:
79+ g_logger->LogWarnF (" {}" , diag.message );
80+ break ;
81+ case ErrorSeverity:
82+ case FatalSeverity:
83+ g_logger->LogErrorF (" {}" , diag.message );
84+ break ;
85+
6886 }
6987 }
70- for (auto & diag: warnings)
71- {
72- g_logger->LogWarnF (" {}" , diag.message );
73- }
74- for (auto & diag: errors)
75- {
76- g_logger->LogErrorF (" {}" , diag.message );
77- }
7888}
7989
8090
0 commit comments