[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-commits
Subject:    Re: r243964 - [OPENMP] Fix compiler crash during data-sharing attributes analysis.
From:       "Bataev, Alexey" <a.bataev () hotmail ! com>
Date:       2015-08-06 3:26:07
Message-ID: BLU437-SMTP647BB67CA53F8BE2098DB885740 () phx ! gbl
[Download RAW message or body]

Thanks!

Best regards,
Alexey Bataev
=============
Software Engineer
Intel Compiler Team

05.08.2015 21:39, Hans Wennborg пишет:
> Sorry for the delay. Merged in r244090.
> 
> Cheers,
> Hans
> 
> On Tue, Aug 4, 2015 at 3:05 AM, Bataev, Alexey <a.bataev@hotmail.com> wrote:
> > Hans,
> > This patch fixes crash in clang. Could you backport it to 3.7 branch?
> > 
> > Best regards,
> > Alexey Bataev
> > =============
> > Software Engineer
> > Intel Compiler Team
> > 
> > 
> > 04.08.2015 11:10, Alexey Bataev пишет:
> > 
> > > Author: abataev
> > > Date: Tue Aug  4 03:10:48 2015
> > > New Revision: 243964
> > > 
> > > URL: http://llvm.org/viewvc/llvm-project?rev=243964&view=rev
> > > Log:
> > > [OPENMP] Fix compiler crash during data-sharing attributes analysis.
> > > 
> > > If a global variable is marked as private in OpenMP construct and then is
> > > used in of the private clauses of the same construct, it might cause
> > > compiler crash because of incorrect capturing.
> > > 
> > > Modified:
> > > cfe/trunk/lib/Sema/SemaOpenMP.cpp
> > > cfe/trunk/test/OpenMP/simd_linear_messages.cpp
> > > 
> > > Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp
> > > URL:
> > > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=243964&r1=243963&r2=243964&view=diff
> > >  
> > > ==============================================================================
> > > --- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)
> > > +++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Tue Aug  4 03:10:48 2015
> > > @@ -657,7 +657,9 @@ void Sema::InitDataSharingAttributesStac
> > > bool Sema::IsOpenMPCapturedVar(VarDecl *VD) {
> > > assert(LangOpts.OpenMP && "OpenMP is not allowed");
> > > VD = VD->getCanonicalDecl();
> > > -  if (DSAStack->getCurrentDirective() != OMPD_unknown) {
> > > +  if (DSAStack->getCurrentDirective() != OMPD_unknown &&
> > > +      (!DSAStack->isClauseParsingMode() ||
> > > +       DSAStack->getParentDirective() != OMPD_unknown)) {
> > > if (DSAStack->isLoopControlVariable(VD) ||
> > > (VD->hasLocalStorage() &&
> > > isParallelOrTaskRegion(DSAStack->getCurrentDirective())) ||
> > > 
> > > Modified: cfe/trunk/test/OpenMP/simd_linear_messages.cpp
> > > URL:
> > > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_linear_messages.cpp?rev=243964&r1=243963&r2=243964&view=diff
> > >  
> > > ==============================================================================
> > > --- cfe/trunk/test/OpenMP/simd_linear_messages.cpp (original)
> > > +++ cfe/trunk/test/OpenMP/simd_linear_messages.cpp Tue Aug  4 03:10:48
> > > 2015
> > > @@ -156,6 +156,7 @@ namespace C {
> > > using A::x;
> > > }
> > > +int f;
> > > int main(int argc, char **argv) {
> > > double darr[100];
> > > // expected-note@+1 {{in instantiation of function template
> > > specialization 'test_template<-4, double, int>' requested here}}
> > > @@ -167,6 +168,8 @@ int main(int argc, char **argv) {
> > > S5 g(5); // expected-note {{'g' defined here}}
> > > int i;
> > > int &j = i; // expected-note {{'j' defined here}}
> > > +  #pragma omp simd linear(f) linear(f) // expected-error {{linear
> > > variable cannot be linear}} expected-note {{defined as linear}}
> > > +  for (int k = 0; k < argc; ++k) ++k;
> > > #pragma omp simd linear // expected-error {{expected '(' after
> > > 'linear'}}
> > > for (int k = 0; k < argc; ++k) ++k;
> > > #pragma omp simd linear ( // expected-error {{expected expression}}
> > > expected-error {{expected ')'}} expected-note {{to match this '('}}
> > > 
> > > 
> > > 

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic