Yes. Could you do it yourself or you want me to do it? ------------- Best regards, Alexey Bataev
27.01.2017 2:33, Hans Wennborg пишет: > Should we merge this to the release branch? > > On Fri, Jan 20, 2017 at 12:57 AM, Alexey Bataev via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> Author: abataev >> Date: Fri Jan 20 02:57:28 2017 >> New Revision: 292590 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=292590&view=rev >> Log: >> [OPENMP] Fix for PR31643: Clang crashes when compiling code on Windows >> with SEH and openmp >> >> In some cituations (during codegen for Windows SEH constructs) >> CodeGenFunction instance may have CurFn equal to nullptr. OpenMP related >> code does not expect such situation during cleanup. >> >> Added: >> cfe/trunk/test/OpenMP/openmp_seh.c >> Modified: >> cfe/trunk/lib/CodeGen/CodeGenFunction.cpp >> >> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=292590&r1=292589&r2=292590&view=diff >> ============================================================================== >> --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original) >> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Fri Jan 20 02:57:28 2017 >> @@ -112,9 +112,8 @@ CodeGenFunction::~CodeGenFunction() { >> if (FirstBlockInfo) >> destroyBlockInfos(FirstBlockInfo); >> >> - if (getLangOpts().OpenMP) { >> + if (getLangOpts().OpenMP && CurFn) >> CGM.getOpenMPRuntime().functionFinished(*this); >> - } >> } >> >> CharUnits CodeGenFunction::getNaturalPointeeTypeAlignment(QualType T, >> >> Added: cfe/trunk/test/OpenMP/openmp_seh.c >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/openmp_seh.c?rev=292590&view=auto >> ============================================================================== >> --- cfe/trunk/test/OpenMP/openmp_seh.c (added) >> +++ cfe/trunk/test/OpenMP/openmp_seh.c Fri Jan 20 02:57:28 2017 >> @@ -0,0 +1,18 @@ >> +// RUN: %clang_cc1 -verify -triple x86_64-pc-windows-msvc19.0.0 -fopenmp >> -fms-compatibility -x c++ -emit-llvm %s -o - | FileCheck %s >> +// expected-no-diagnostics >> +// REQUIRES: x86-registered-target >> +extern "C" { >> +void __cpuid(int[4], int); >> +} >> + >> +// CHECK-LABEL: @main >> +int main(void) { >> + __try { >> + int info[4]; >> + __cpuid(info, 1); >> + } __except (1) { >> + } >> + >> + return 0; >> +} >> + >> >> >> _______________________________________________ >> 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