Change code added in d0d0ef1f67c (blame: create scoreboard setup function, 2017-05-24) so that GCC v12's -fanalyzer doesn't think that we can have a "NULL" final_commit in the modified branch. This happens because the analyzer gives up in the prepare_revision_walk() function, and thinks that the "sb->reverse && sb->revs->first_parent_only" condition we already checked a few lines above can have a different result at this point. That isn't the case, but what we really mean here is "if we previously set up the final commit [because that was true]", so let's do that instead. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> --- blame.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blame.c b/blame.c index da1052ac94b..f6b1865ba65 100644 --- a/blame.c +++ b/blame.c @@ -2816,7 +2816,7 @@ void setup_scoreboard(struct blame_scoreboard *sb, if (prepare_revision_walk(sb->revs)) die(_("revision walk setup failed")); - if (sb->reverse && sb->revs->first_parent_only) { + if (final_commit) { struct commit *c = final_commit; sb->revs->children.name = "children"; -- 2.36.1.1124.g577fa9c2ebd