From 8cf5afba5dc482fe7063654720bfb0c45354998c Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 14 Dec 2023 09:10:10 -0500 Subject: analyzer: cleanups [PR112655] Avoid copying eedges in infinite_loop::infinite_loop. Use initializer lists in the various places reported in PR analyzer/112655 (apart from coord_test's ctor, which would require nontrivial refactoring). gcc/analyzer/ChangeLog: PR analyzer/112655 * infinite-loop.cc (infinite_loop::infinite_loop): Pass eedges via rvalue reference rather than by value. (starts_infinite_loop_p): Move eedges when constructing an infinite_loop instance. * sm-file.cc (fileptr_state_machine::fileptr_state_machine): Use initializer list for states. * sm-sensitive.cc (sensitive_state_machine::sensitive_state_machine): Likewise. * sm-signal.cc (signal_state_machine::signal_state_machine): Likewise. * sm-taint.cc (taint_state_machine::taint_state_machine): Likewise. * varargs.cc (va_list_state_machine::va_list_state_machine): Likewise. Signed-off-by: David Malcolm --- gcc/analyzer/infinite-loop.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gcc/analyzer/infinite-loop.cc') diff --git a/gcc/analyzer/infinite-loop.cc b/gcc/analyzer/infinite-loop.cc index c47ce1c..fc194d9 100644 --- a/gcc/analyzer/infinite-loop.cc +++ b/gcc/analyzer/infinite-loop.cc @@ -71,7 +71,7 @@ struct infinite_loop { infinite_loop (const exploded_node &enode, location_t loc, - std::vector eedges, + std::vector &&eedges, logger *logger) : m_enode (enode), m_loc (loc), @@ -423,9 +423,9 @@ starts_infinite_loop_p (const exploded_node &enode, free (filename); } return ::make_unique (enode, - first_loc, - eedges, - logger); + first_loc, + std::move (eedges), + logger); } else { -- cgit v1.1