https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102233
--- Comment #1 from Richard W.M. Jones <rjones at redhat dot com> --- perf top shows: 36.63% lto1 [.] shortest_paths<ana::eg_traits, ana::exploded_path>::shortest_paths which it pretty much stuck permanently at 30-50% CPU. The machine has plenty of free memory and is not swapping. The stack trace is: #0 0x0000000000d0b377 in shortest_paths<ana::eg_traits, ana::exploded_path>::shortest_paths (this=<optimized out>, graph=..., given_node=<optimized out>, sense=<optimized out>, this=<optimized out>, graph=..., given_node=<optimized out>, sense=<optimized out>) at ../../gcc/shortest-paths.h:120 #1 0x0000000000d0b8db in ana::epath_finder::explore_feasible_paths (this=this@entry=0x7fffbfd72130, target_enode=target_enode@entry=0x49007ac0, desc=desc@entry=0x18e81d6 "malloc_leak", diag_idx=diag_idx@entry=602) at ../../gcc/analyzer/diagnostic-manager.cc:349 #2 0x0000000000d0bc1c in ana::epath_finder::get_best_epath (this=this@entry=0x7fffbfd72130, enode=0x49007ac0, desc=0x18e81d6 "malloc_leak", diag_idx=diag_idx@entry=602, out_problem=out_problem@entry=0x48f9dea0) at ../../gcc/analyzer/diagnostic-manager.cc:160 #3 0x0000000000d0be22 in ana::saved_diagnostic::calc_best_epath (this=this@entry=0x48f9de40, pf=pf@entry=0x7fffbfd72130) at ../../gcc/analyzer/diagnostic-manager.cc:685 #4 0x0000000000d0c046 in ana::dedupe_winners::add (sd=0x48f9de40, pf=0x7fffbfd72130, logger=<optimized out>, this=0x7fffbfd72170) at ../../gcc/analyzer/diagnostic-manager.cc:979 #5 ana::diagnostic_manager::emit_saved_diagnostics (this=0x7fffbfd724a0, eg=...) at ../../gcc/analyzer/diagnostic-manager.cc:1096 #6 0x0000000000a9ea51 in ana::impl_run_checkers (logger=<optimized out>) at ../../gcc/analyzer/exploded-graph.h:813 #7 0x0000000000a9f143 in ana::run_checkers () at ../../gcc/analyzer/analyzer-logging.h:150 #8 0x0000000000a6f7a6 in (anonymous namespace)::pass_analyzer::execute (this=<optimized out>) at ../../gcc/analyzer/analyzer-pass.cc:87 #9 0x0000000000e13ba9 in execute_one_pass (pass=0x2e3f540) at ../../gcc/passes.c:2567 #10 0x000000000127aa6b in execute_ipa_pass_list (pass=0x2e3f540) at ../../gcc/passes.c:2996 #11 0x0000000001268538 in do_whole_program_analysis () at ../../gcc/lto/lto.c:469 #12 lto_main () at ../../gcc/lto/lto.c:637 #13 0x0000000001264952 in compile_file () at ../../gcc/toplev.c:460 #14 0x000000000122aa1c in do_compile () at ../../gcc/toplev.c:2204 #15 toplev::main (this=this@entry=0x7fffbfd731ee, argc=<optimized out>, argv=<optimized out>) at ../../gcc/toplev.c:2345 #16 0x0000000001229d90 in main (argc=<optimized out>, argv=<optimized out>) at ../../gcc/main.c:39