Bug path

new_string_obj
‘new_string_obj’: events 1-2
53string_obj *new_string_obj (const char *str)
^~~~~~~~~~~~~~
|
(1) entry to ‘new_string_obj’
[...]
59 = (string_obj *)alloc_obj (&str_type, sizeof (string_obj) + len + 1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
(2) calling ‘alloc_obj’ from ‘new_string_obj’
alloc_obj
‘alloc_obj’: events 3-4
43base_obj *alloc_obj (type_obj *ob_type, size_t sz)
^~~~~~~~~
|
(3) entry to ‘alloc_obj’
[...]
46 if (!obj)
~
|
(4) following ‘true’ branch (when ‘obj’ is NULL)...
‘alloc_obj’: event 5
47 return NULL;
^~~~
|
(5) ...to here
‘alloc_obj’: event 6
47 return NULL;
^~~~
|
(6) ‘0’ is NULL
‘new_string_obj’: events 7-9
59 = (string_obj *)alloc_obj (&str_type, sizeof (string_obj) + len + 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
(7) returning to ‘new_string_obj’ from ‘alloc_obj’
[...]
67 str_obj->str_len = len; /* { dg-warning "dereference of NULL 'str_obj'" } */
~~~~~~~~~~~~~~~~~~~~~~
|
(9) dereference of NULL ‘str_obj’
[...]
70 return str_obj;
~~~~~~~
|
(8) ‘str_obj’ is NULL