https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117719

            Bug ID: 117719
           Summary: Wdangling-pointer false positive for store to heap
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: uecker at gcc dot gnu.org
  Target Milestone: ---

I think it could warn about this:

char ** h(void)
{
    char **p = malloc(sizeof(char*));
    if (!p)
        return NULL;
    char c;
    *p = &c;
    return p;
}

It does when moving the malloc into the caller, but this is semantically
equivalent.

char** f(char **p)
{
    if (!p)
        return NULL;
    char c;
    *p = &c;
    return p;
}

char** g()
{
    return f(malloc(sizeof(char*)));
}

https://godbolt.org/z/beYMb84qd

Reply via email to