https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111669
--- Comment #5 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
And you can tell the compiler some fact about the semantics of the Windoge API
functions if you really need -Werror=nonnull (though I cannot see any reason
you must use -Werror here):
int GetSystemDirectory16(char *path, int count)
{
if (GetWindowsDirectoryA()) {
/* For blah blah blah... reason
path will never be NULL if GetWindowsDirectoryA returns true */
if (!path)
__builtin_unreachable();
__builtin_strcpy(path, "foo");
}
return 0;
}