https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100877
--- Comment #1 from Steven Sun <StevenSun2021 at hotmail dot com> --- I look at the call stack. Most of the time is wasted on `dump_template_parms` in `gcc/cp/error.c`. I commented several functions calling it: (I'm using stage-1 compiler) `announce_function` in `gcc/toplev.c` `push_tinst_level_loc` in `gcc/cp/pt.c` `cp_printer` in `gcc/cp/error.c` (directly return true) Then I got the output after a few seconds. ---------------------- examples/../include/./model.hpp: In instantiation of ‘’: examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:61:77: required from ‘’ examples/../include/./model.hpp:55:147: [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:55:147: recursively required from ‘’ examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:60:77: required from ‘’ examples/../include/./model.hpp:60:77: recursively required from ‘’ examples/../include/./model.hpp:55:147: recursively required from ‘’ examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:55:147: recursively required from ‘’ examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:60:77: required from ‘’ examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:382:55: required from ‘’ examples/dcgan.cc:48:43: required from here examples/../include/./model.hpp:59:96: error: ‘’ has no member named ‘’ ---------------------- But I cannot give the output. Because the dumping process will lead to an out of memory. If I disable member access check, it gives an error --------------------- examples/../include/./model.hpp: In instantiation of ‘’: examples/../include/./model.hpp:55:147: recursively required from ‘’ examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:60:77: required from ‘’ examples/../include/./model.hpp:55:147: required from ‘’ examples/../include/./model.hpp:382:55: required from ‘’ examples/dcgan.cc:48:43: required from here examples/../include/./model.hpp:60:77: error: use of ‘’ before deduction of ‘auto’ -------------------- It's the same source location! and it is in your definition of -------------------- template< Expression Ex, Place_Holder Ph, Expression Ey > auto replace_placeholder_with_expression( Ex const& ex, Ph const& old_place_holder, Ey const& new_expression ) --------------------