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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
All memory is allocated during 

Run till exit from #84 0x000000000080a9f7 in check_initializer (
    decl=<var_decl 0x7ffff4ecdea0 frus>, init=<constructor 0x7ffff4dc2678>, 
    flags=5, cleanups=0x7fffffffd7f0)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/cp/decl.c:6318
...
Run till exit from #104 0x00000000009d4b2f in expand_default_init (
    binfo=<tree_binfo 0x7ffff4ece960>, 
    true_exp=<var_decl 0x7ffff4ecdea0 frus>, 
    exp=<var_decl 0x7ffff4ecdea0 frus>, init=<constructor 0x7ffff4dc2678>, 
    flags=5, complain=3)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/cp/init.c:1787

where it all the time does template instantiation and overload resolution.  I
wonder if some trivial caching of "last elements overload set" during
initializer processing could speed up things dramatically and avoid generating
so much garbage
(we don't GC during a single check_initializer call).

Reply via email to