File tree 2 files changed +49
-18
lines changed
testsuite/c-c++-common/analyzer
2 files changed +49
-18
lines changed Original file line number Diff line number Diff line change @@ -443,25 +443,48 @@ state_change_event::get_desc (bool can_colorize) const
443
443
meaning.dump_to_pp (&meaning_pp);
444
444
445
445
/* Append debug version. */
446
- if (m_origin)
447
- return make_label_text
448
- (can_colorize,
449
- " %s (state of %qE: %qs -> %qs, origin: %qE, meaning: %s)" ,
450
- custom_desc.get (),
451
- var,
452
- m_from->get_name (),
453
- m_to->get_name (),
454
- origin,
455
- pp_formatted_text (&meaning_pp));
446
+ if (var)
447
+ {
448
+ if (m_origin)
449
+ return make_label_text
450
+ (can_colorize,
451
+ " %s (state of %qE: %qs -> %qs, origin: %qE, meaning: %s)" ,
452
+ custom_desc.get (),
453
+ var,
454
+ m_from->get_name (),
455
+ m_to->get_name (),
456
+ origin,
457
+ pp_formatted_text (&meaning_pp));
458
+ else
459
+ return make_label_text
460
+ (can_colorize,
461
+ " %s (state of %qE: %qs -> %qs, NULL origin, meaning: %s)" ,
462
+ custom_desc.get (),
463
+ var,
464
+ m_from->get_name (),
465
+ m_to->get_name (),
466
+ pp_formatted_text (&meaning_pp));
467
+ }
456
468
else
457
- return make_label_text
458
- (can_colorize,
459
- " %s (state of %qE: %qs -> %qs, NULL origin, meaning: %s)" ,
460
- custom_desc.get (),
461
- var,
462
- m_from->get_name (),
463
- m_to->get_name (),
464
- pp_formatted_text (&meaning_pp));
469
+ {
470
+ if (m_origin)
471
+ return make_label_text
472
+ (can_colorize,
473
+ " %s (state: %qs -> %qs, origin: %qE, meaning: %s)" ,
474
+ custom_desc.get (),
475
+ m_from->get_name (),
476
+ m_to->get_name (),
477
+ origin,
478
+ pp_formatted_text (&meaning_pp));
479
+ else
480
+ return make_label_text
481
+ (can_colorize,
482
+ " %s (state: %qs -> %qs, NULL origin, meaning: %s)" ,
483
+ custom_desc.get (),
484
+ m_from->get_name (),
485
+ m_to->get_name (),
486
+ pp_formatted_text (&meaning_pp));
487
+ }
465
488
}
466
489
else
467
490
return custom_desc;
Original file line number Diff line number Diff line change
1
+ /* Regression test for ICE with -fanalyzer-verbose-state-changes. */
2
+
3
+ /* { dg-additional-options " -fanalyzer-verbose-state-changes" } */
4
+
5
+ __builtin_va_list FOO_showfatal_ap ;
6
+ void FOO_showfatal (char fmta , ...) {
7
+ __builtin_va_start (FOO_showfatal_ap , fmta ); /* { dg-message "'va_start' called here" } */
8
+ } /* { dg-warning "missing call to 'va_end'" } */
You can’t perform that action at this time.
0 commit comments