[Bug c++/84281] Heap grows indefinitely

dmalcolm at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 8 19:17:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84281

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dmalcolm at gcc dot gnu.org

--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Briefly tested on trunk, 7, 6, and 5; all of them seem to hang and consume
multiple gigabytes of memory:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
12459 david     20   0 44.088g 0.041t   4752 t   0.0 33.5  15:42.05 cc1plus     
12452 david     20   0 10.470g 0.010t     56 t   0.0  8.0   1:31.62 cc1plus

Seems to be stuck in cxx_eval_vec_init_1 building an initializer (or
initializers?) for a very large array of very large integers.

(gdb) call debug_tree (atype)
 <array_type 0x7ffff1a2a1f8
    type <integer_type 0x7ffff18ca738 long int public type_6 DI
        size <integer_cst 0x7ffff18ade70 constant 64>
        unit-size <integer_cst 0x7ffff18ade88 constant 8>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff18ca738 precision:64 min <integer_cst 0x7ffff18cd108
-9223372036854775808> max <integer_cst 0x7ffff18cd120 9223372036854775807>
        pointer_to_this <pointer_type 0x7ffff18da498>>
    BLK
    size <integer_cst 0x7ffff1a1b6f0 type <integer_type 0x7ffff18ca0a8
bitsizetype> constant 274877906880>
    unit-size <integer_cst 0x7ffff1a1b708 type <integer_type 0x7ffff18ca000
sizetype> constant 34359738360>
    align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff1a2a1f8
    domain <integer_type 0x7ffff1a2a150
        type <integer_type 0x7ffff18ca000 sizetype public unsigned DI size
<integer_cst 0x7ffff18ade70 64> unit-size <integer_cst 0x7ffff18ade88 8>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff18ca000 precision:64 min <integer_cst 0x7ffff18adea0 0> max <integer_cst
0x7ffff18ae560 18446744073709551615>>
        type_6 DI size <integer_cst 0x7ffff18ade70 64> unit-size <integer_cst
0x7ffff18ade88 8>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff1a2a150 precision:64 min <integer_cst 0x7ffff18adea0 0> max <integer_cst
0x7ffff1a1b6a8 4294967294>>>


More information about the Gcc-bugs mailing list