[fpc-devel] Why/how does the compiler have a non-trivial number of memory leaks after over two decades of development?

Sven Barth pascaldragon at googlemail.com
Fri Aug 3 22:27:53 CEST 2018


Am 30.07.2018 um 02:58 schrieb Ben Grasset:
> Call trace for block $000000005E642220 size 56
>   $000000010000DB6B
>   $00000001000A35ED  TNODE__ALLOCOPTINFO,  line 973 of node.pas
>   $0000000100164889  SETEXECUTIONWEIGHT,  line 366 of optutils.pas
>   $00000001000C2873  FOREACHNODESTATIC,  line 321 of nutils.pas
>   $00000001000C2DAA  PROCESS_CHILDREN,  line 308 of nutils.pas
>   $00000001000C28BF  FOREACHNODESTATIC,  line 336 of nutils.pas
>   $00000001000C2DF1  PROCESS_CHILDREN,  line 309 of nutils.pas
>   $00000001000C28BF  FOREACHNODESTATIC,  line 336 of nutils.pas

Fixed in r39558.

> Call trace for block $000000007CF57310 size 39
>   $000000010000DA72
>   $00000001000080C3
>   $0000000100008FAB
>   $00000001000088B4
>   $00000001000D3950 PARSE_GENERIC_SPECIALIZATION_TYPES_INTERNAL,  line 
> 394 of pgenutil.pas
>   $00000001000D3F1E  GENERATE_SPECIALIZATION_PHASE1, line 581 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
>   $00000001001887ED  FACTOR,  line 3390 of pexpr.pas
> Call trace for block $000000007CF57490 size 46
>   $000000010000DA72
>   $00000001000080C3
>   $0000000100009052
>   $000000010000842D
>   $00000001000D38A0 PARSE_GENERIC_SPECIALIZATION_TYPES_INTERNAL,  line 
> 391 of pgenutil.pas
>   $00000001000D3F1E  GENERATE_SPECIALIZATION_PHASE1, line 581 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
>   $00000001001887ED  FACTOR,  line 3390 of pexpr.pas
> Call trace for block $000000007CEE93F0 size 128
>   $0000000100015F5B
>   $000000010000DB4B
>   $00000001000282D5  TFPLIST__SETCAPACITY,  line 757 of cclasses.pas
>   $00000001000287C3  TFPLIST__EXPAND,  line 846 of cclasses.pas
>   $000000010002845C  TFPLIST__ADD,  line 784 of cclasses.pas
>   $00000001000D368C PARSE_GENERIC_SPECIALIZATION_TYPES_INTERNAL,  line 
> 374 of pgenutil.pas
>   $00000001000D3F1E  GENERATE_SPECIALIZATION_PHASE1, line 581 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
> Call trace for block $000000007CEEA950 size 128
>   $0000000100015F5B
>   $000000010000DB4B
>   $00000001000282D5  TFPLIST__SETCAPACITY,  line 757 of cclasses.pas
>   $00000001000287C3  TFPLIST__EXPAND,  line 846 of cclasses.pas
>   $000000010002845C  TFPLIST__ADD,  line 784 of cclasses.pas
>   $00000001000D35FF PARSE_GENERIC_SPECIALIZATION_TYPES_INTERNAL,  line 
> 366 of pgenutil.pas
>   $00000001000D3F1E  GENERATE_SPECIALIZATION_PHASE1, line 581 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
> Call trace for block $000000007CF34A60 size 12
>   $000000010000DB6B
>   $00000001000D35DD PARSE_GENERIC_SPECIALIZATION_TYPES_INTERNAL,  line 
> 364 of pgenutil.pas
>   $00000001000D3F1E  GENERATE_SPECIALIZATION_PHASE1, line 581 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
>   $00000001001887ED  FACTOR,  line 3390 of pexpr.pas
>   $000000010018BA4A  SUB_EXPR,  line 4184 of pexpr.pas
>   $000000010018BA72  SUB_EXPR,  line 4189 of pexpr.pas
>   $000000010018BA72  SUB_EXPR,  line 4189 of pexpr.pas
> Call trace for block $000000007CF57550 size 24
>   $000000010000DA72
>   $000000010000BF6A
>   $000000010000BE05
>   $000000010014E0A5  TSPECIALIZATIONCONTEXT__CREATE, line 62 of 
> pgentype.pas
>   $00000001000D3EBB  GENERATE_SPECIALIZATION_PHASE1, line 578 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
>   $00000001001887ED  FACTOR,  line 3390 of pexpr.pas
>   $000000010018BA4A  SUB_EXPR,  line 4184 of pexpr.pas
> Call trace for block $000000007CF57790 size 24
>   $000000010000DA72
>   $000000010000BF6A
>   $000000010000BE05
>   $0000000100029063  TFPOBJECTLIST__CREATE,  line 1052 of cclasses.pas
>   $0000000100028E74  TFPOBJECTLIST__CREATE,  line 1024 of cclasses.pas
>   $000000010014E08A  TSPECIALIZATIONCONTEXT__CREATE, line 61 of 
> pgentype.pas
>   $00000001000D3EBB  GENERATE_SPECIALIZATION_PHASE1, line 578 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
> Call trace for block $000000007CF576D0 size 24
>   $000000010000DA72
>   $000000010000BF6A
>   $0000000100028E4C  TFPOBJECTLIST__CREATE,  line 1023 of cclasses.pas
>   $000000010014E08A  TSPECIALIZATIONCONTEXT__CREATE, line 61 of 
> pgentype.pas
>   $00000001000D3EBB  GENERATE_SPECIALIZATION_PHASE1, line 578 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
>   $00000001001887ED  FACTOR,  line 3390 of pexpr.pas
>   $000000010018BA4A  SUB_EXPR,  line 4184 of pexpr.pas
> Call trace for block $000000007C9BAF50 size 312
>   $000000010000DA72
>   $000000010000BF6A
>   $000000010014E058  TSPECIALIZATIONCONTEXT__CREATE, line 60 of 
> pgentype.pas
>   $00000001000D3EBB  GENERATE_SPECIALIZATION_PHASE1, line 578 of 
> pgenutil.pas
>   $000000010018A6B7  FACTOR_READ_ID,  line 2850 of pexpr.pas
>   $00000001001887ED  FACTOR,  line 3390 of pexpr.pas
>   $000000010018BA4A  SUB_EXPR,  line 4184 of pexpr.pas
>   $000000010018BA72  SUB_EXPR,  line 4189 of pexpr.pas

Fixed in r39560.

> Call trace for block $000000007CEC2680 size 66
>   $0000000100015F5B
>   $000000010000DB4B
>   $0000000100029649  TFPHASHLIST__SETSTRCAPACITY,  line 1369 of 
> cclasses.pas
>   $0000000100029DA2  TFPHASHLIST__STREXPAND,  line 1538 of cclasses.pas
>   $000000010002991A  TFPHASHLIST__ADDSTR,  line 1433 of cclasses.pas
>   $0000000100029A5A  TFPHASHLIST__ADD,  line 1464 of cclasses.pas
>   $00000001000D5BBA  PARSE_GENERIC_PARAMETERS,  line 1220 of pgenutil.pas
>   $00000001001691C6  CONSUME_PROC_NAME,  line 714 of pdecsub.pas
> Call trace for block $000000007CF525D0 size 32
>   $00000001000160C5
>   $000000010000DB4B
>   $00000001000296FB  TFPHASHLIST__SETHASHCAPACITY,  line 1387 of 
> cclasses.pas
>   $00000001000295E7  TFPHASHLIST__SETCAPACITY,  line 1327 of cclasses.pas
>   $0000000100029D1A  TFPHASHLIST__EXPAND,  line 1526 of cclasses.pas
>   $0000000100029A04  TFPHASHLIST__ADD,  line 1459 of cclasses.pas
>   $00000001000D5BBA  PARSE_GENERIC_PARAMETERS,  line 1220 of pgenutil.pas
>   $00000001001691C6  CONSUME_PROC_NAME,  line 714 of pdecsub.pas
> Call trace for block $000000007CDCC860 size 576
>   $0000000100015F5B
>   $000000010000DB4B
>   $000000010002959D  TFPHASHLIST__SETCAPACITY,  line 1323 of cclasses.pas
>   $0000000100029D1A  TFPHASHLIST__EXPAND,  line 1526 of cclasses.pas
>   $0000000100029A04  TFPHASHLIST__ADD,  line 1459 of cclasses.pas
>   $00000001000D5BBA  PARSE_GENERIC_PARAMETERS,  line 1220 of pgenutil.pas
>   $00000001001691C6  CONSUME_PROC_NAME,  line 714 of pdecsub.pas
>   $00000001001671AA  PARSE_PROC_HEAD,  line 881 of pdecsub.pas
> Call trace for block $000000007CEBF580 size 64
>   $000000010000DA72
>   $000000010000BF6A
>   $00000001000297D8  TFPHASHLIST__CREATE,  line 1404 of cclasses.pas
>   $000000010002A73B  TFPHASHOBJECTLIST__CREATE,  line 1840 of cclasses.pas
>   $00000001000D5B30  PARSE_GENERIC_PARAMETERS,  line 1209 of pgenutil.pas
>   $00000001001691C6  CONSUME_PROC_NAME,  line 714 of pdecsub.pas
>   $00000001001671AA  PARSE_PROC_HEAD,  line 881 of pdecsub.pas
>   $000000010016A841  PARSE_PROC_DEC,  line 1597 of pdecsub.pas
> Call trace for block $000000007CF52690 size 24
>   $000000010000DA72
>   $000000010000BF6A
>   $000000010002A6FC  TFPHASHOBJECTLIST__CREATE,  line 1838 of cclasses.pas
>   $00000001000D5B30  PARSE_GENERIC_PARAMETERS,  line 1209 of pgenutil.pas
>   $00000001001691C6  CONSUME_PROC_NAME,  line 714 of pdecsub.pas
>   $00000001001671AA  PARSE_PROC_HEAD,  line 881 of pdecsub.pas
>   $000000010016A841  PARSE_PROC_DEC,  line 1597 of pdecsub.pas
>   $000000010017FD47  READ_PROC,  line 2157 of psub.pas

Fixed in r39561.

Regards,
Sven



More information about the fpc-devel mailing list