https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83139
--- Comment #2 from Julian Andres Klode <j...@jak-linux.org> --- Apparently, this is because check_path() is being inlined and checks that the argument is NULL. Then when it sees the second use of pbuf, it considers it possible that it is NULL. I'm not sure it's really a bug. It depends on whether it would do the same if check_path() were used elsewhere where the !pbuf check is actually important.