From: Simon Marchi Date: Mon, 17 Sep 2018 17:11:07 +0000 (-0400) Subject: Fix use-after-move in compile/compile-cplus-types.c X-Git-Tag: users/ARM/embedded-binutils-master-2018q4~702 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=461464f22632163209937ba5128d1f9f32554ea3;p=external%2Fbinutils.git Fix use-after-move in compile/compile-cplus-types.c Patch d82b3862f12 ("compile: Remove non-const reference parameters") introduced a regression in compile/compile-cplus-types.c. The new_scope variable in compile_cplus_instance::enter_scope is used after it was std::moved. This patch fixes it by referring to the back of the vector where it was moved instead. gdb/ChangeLog: * compile/compile-cplus-types.c (compile_cplus_instance::enter_scope): Don't use new_scope after std::move. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 673d35b..419bffd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2018-09-17 Simon Marchi + + * compile/compile-cplus-types.c + (compile_cplus_instance::enter_scope): Don't use new_scope after + std::move. + 2018-09-17 Tom Tromey * common/pathstuff.c (get_standard_cache_dir): Use diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c index 75193d2..996fea5 100644 --- a/gdb/compile/compile-cplus-types.c +++ b/gdb/compile/compile-cplus-types.c @@ -261,7 +261,7 @@ compile_cplus_instance::enter_scope (compile_scope &&new_scope) if (debug_compile_cplus_scopes) { fprintf_unfiltered (gdb_stdlog, "entering new scope %s\n", - host_address_to_string (&new_scope)); + host_address_to_string (&m_scopes.back ())); } /* Push the global namespace. */ @@ -270,7 +270,7 @@ compile_cplus_instance::enter_scope (compile_scope &&new_scope) /* Push all other namespaces. Note that we do not push the last scope_component -- that's the actual type we are converting. */ std::for_each - (new_scope.begin (), new_scope.end () - 1, + (m_scopes.back ().begin (), m_scopes.back ().end () - 1, [this] (const scope_component &comp) { gdb_assert (TYPE_CODE (SYMBOL_TYPE (comp.bsymbol.symbol))