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