https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108400
--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Looking at the reduced reproducer, -fanalyzer is considering the case where wu->Contexts is initially non-NULL and thus the loop is entered, but it doesn't know about the insides of Tick64 and thus considers that after the call to Tick64() that wu->Contexts could have become NULL, so in the 2nd iteration LIST_DATA(wu->Contexts, i) could be NULL. Though there's no way a user could figure that out from what the analyzer outputs :/