leak of ‘ptr [-Wanalyzer-malloc-leak]
12 throw value_error (); // { dg-warning "leak" }
^
int outer()
int outer(): events 1-2
29 int outer ()
^~~~~
|
(1) entry to ‘outer’
[...]
33 __analyzer_middle (1);
~~~~~~~~~~~~~~~~~~~~~
|
(2) calling ‘__analyzer_middle’ from ‘outer’
int __analyzer_middle(int)
int __analyzer_middle(int): events 3-5
18 int __analyzer_middle (int flag)
^~~~~~~~~~~~~~~~~
|
(3) entry to ‘__analyzer_middle’
19 {
20 void *ptr = __builtin_malloc (1024); // { dg-message "allocated here" }
~~~~~~~~~~~~~~~~~~~~~~~
|
(4) allocated here
21
22 int rval = inner (flag);
~~~~~~~~~~~~
|
(5) calling ‘inner’ from ‘__analyzer_middle’
int inner(int)
int inner(int): events 6-10
9 int inner (int flag)
^~~~~
|
(6) entry to ‘inner’
10 {
11 if (flag)
~~
|
(7) following ‘true’ branch (when ‘flag != 0’)... ─>─┐
───────────────────────────────────────────────────────┘
12 throw value_error (); // { dg-warning "leak" }
~
|
──────────────────────>(8) ...to here
(9) throwing exception of type ‘value_error’ here...
(10) ⚠️ ‘ptr’ leaks here; was allocated at (4)