I've reverted them both to fix bots: https://reviews.llvm.org/D26720
On Tue, Nov 15, 2016 at 3:40 PM Vitaly Buka <vitalyb...@google.com> wrote: > With this patch it's "after-scope" instead of return but still there: > http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/650/steps/check-clang%20asan/logs/stdio > > On Tue, Nov 15, 2016 at 1:07 PM Alexey Bataev via cfe-commits < > cfe-commits@lists.llvm.org> wrote: > > Author: abataev > Date: Tue Nov 15 14:57:18 2016 > New Revision: 287025 > > URL: http://llvm.org/viewvc/llvm-project?rev=287025&view=rev > Log: > [OPENMP] Fix stack use after delete, NFC. > > Fixed possible use of stack variable after deletion. > > Modified: > cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp > > Modified: cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp?rev=287025&r1=287024&r2=287025&view=diff > > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGStmtOpenMP.cpp Tue Nov 15 14:57:18 2016 > @@ -2237,6 +2237,7 @@ void CodeGenFunction::EmitSections(const > bool HasLastprivates = false; > auto &&CodeGen = [&S, Stmt, CS, &HasLastprivates](CodeGenFunction &CGF, > PrePostActionTy &) { > + OMPCancelStackRAII CancelRegion(CGF); > auto &C = CGF.CGM.getContext(); > auto KmpInt32Ty = C.getIntTypeForBitwidth(/*DestWidth=*/32, > /*Signed=*/1); > // Emit helper vars inits. > @@ -2332,11 +2333,11 @@ void CodeGenFunction::EmitSections(const > [](CodeGenFunction &) {}); > // Tell the runtime we are done. > SourceLocation ELoc = S.getLocEnd(); > - auto &&CodeGen = [ELoc](CodeGenFunction &CGF) { > + auto &&FinalCodeGen = [ELoc](CodeGenFunction &CGF) { > CGF.CGM.getOpenMPRuntime().emitForStaticFinish(CGF, ELoc); > }; > - CodeGen(CGF); > - CGF.OMPCancelStack.back().CodeGen = CodeGen; > + FinalCodeGen(CGF); > + CGF.OMPCancelStack.back().CodeGen = FinalCodeGen; > CGF.EmitOMPReductionClauseFinal(S); > // Emit post-update of the reduction variables if IsLastIter != 0. > emitPostUpdateForReductionClause( > @@ -2374,7 +2375,6 @@ void CodeGenFunction::EmitSections(const > void CodeGenFunction::EmitOMPSectionsDirective(const OMPSectionsDirective > &S) { > { > OMPLexicalScope Scope(*this, S, /*AsInlined=*/true); > - OMPCancelStackRAII CancelRegion(*this); > EmitSections(S); > } > // Emit an implicit barrier at the end. > @@ -2483,7 +2483,6 @@ void CodeGenFunction::EmitOMPParallelSec > // Emit directive as a combined directive that consists of two implicit > // directives: 'parallel' with 'sections' directive. > auto &&CodeGen = [&S](CodeGenFunction &CGF, PrePostActionTy &) { > - OMPCancelStackRAII CancelRegion(CGF); > CGF.EmitSections(S); > }; > emitCommonOMPParallelDirective(*this, S, OMPD_sections, CodeGen); > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits