Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Created February 8, 2021 11:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasterDuke17/6479485b8f93cebc72ea1249c584a508 to your computer and use it in GitHub Desktop.
Save MasterDuke17/6479485b8f93cebc72ea1249c584a508 to your computer and use it in GitHub Desktop.
In file included from src/moar.h:126,
from src/spesh/pea.c:1:
src/spesh/pea.c: In function ‘MVM_free’:
src/core/alloc.h:43:5: warning: double-‘free’ of ‘p’ [CWE-415] [-Wanalyzer-double-free]
43 | free(p);
| ^~~~~~~
‘MVM_spesh_pea_destroy_deopt_info’: events 1-4
|
|src/spesh/pea.c:718:6:
| 718 | void MVM_spesh_pea_destroy_deopt_info(MVMThreadContext *tc, MVMSpeshPEADeopt *deopt_pea) {
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (1) entry to ‘MVM_spesh_pea_destroy_deopt_info’
| 719 | MVMuint32 i;
| 720 | for (i = 0; i < MVM_VECTOR_ELEMS(deopt_pea->materialize_info); i++)
| | ~~~
| | |
| | (2) following ‘true’ branch...
| 721 | MVM_free(deopt_pea->materialize_info[i].attr_regs);
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | |
| | | (3) ...to here
| | (4) calling ‘MVM_free’ from ‘MVM_spesh_pea_destroy_deopt_info’
|
+--> ‘MVM_free’: events 5-6
|
|src/core/alloc.h:42:24:
| 42 | MVM_STATIC_INLINE void MVM_free(void *p) {
| | ^~~~~~~~
| | |
| | (5) entry to ‘MVM_free’
| 43 | free(p);
| | ~~~~~~~
| | |
| | (6) first ‘free’ here
|
<------+
|
‘MVM_spesh_pea_destroy_deopt_info’: events 7-10
|
|src/spesh/pea.c:721:9:
| 720 | for (i = 0; i < MVM_VECTOR_ELEMS(deopt_pea->materialize_info); i++)
| | ~~~
| | |
| | (8) following ‘true’ branch...
| 721 | MVM_free(deopt_pea->materialize_info[i].attr_regs);
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | |
| | | (9) ...to here
| | (7) returning to ‘MVM_spesh_pea_destroy_deopt_info’ from ‘MVM_free’
| | (10) calling ‘MVM_free’ from ‘MVM_spesh_pea_destroy_deopt_info’
|
+--> ‘MVM_free’: events 11-12
|
|src/core/alloc.h:42:24:
| 42 | MVM_STATIC_INLINE void MVM_free(void *p) {
| | ^~~~~~~~
| | |
| | (11) entry to ‘MVM_free’
| 43 | free(p);
| | ~~~~~~~
| | |
| | (12) first ‘free’ here
|
<------+
|
‘MVM_spesh_pea_destroy_deopt_info’: events 13-17
|
|src/spesh/pea.c:721:9:
| 720 | for (i = 0; i < MVM_VECTOR_ELEMS(deopt_pea->materialize_info); i++)
| | ~~~
| | |
| | (14) following ‘true’ branch...
| 721 | MVM_free(deopt_pea->materialize_info[i].attr_regs);
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | |
| | | (15) ...to here
| | | (16) first ‘free’ here
| | (13) returning to ‘MVM_spesh_pea_destroy_deopt_info’ from ‘MVM_free’
| | (17) passing freed pointer ‘<unknown>’ in call to ‘MVM_free’ from ‘MVM_spesh_pea_destroy_deopt_info’
|
+--> ‘MVM_free’: events 18-19
|
|src/core/alloc.h:42:24:
| 42 | MVM_STATIC_INLINE void MVM_free(void *p) {
| | ^~~~~~~~
| | |
| | (18) entry to ‘MVM_free’
| 43 | free(p);
| | ~~~~~~~
| | |
| | (19) second ‘free’ here; first ‘free’ was at (16)
|
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment