nullptr.cpp created this revision. nullptr.cpp added a reviewer: ABataev. Herald added subscribers: cfe-commits, danielkiss, guansong, yaxunl. Herald added a project: clang. nullptr.cpp requested review of this revision. Herald added a reviewer: jdoerfert. Herald added a subscriber: sstefan1.
Function Sema::isOpenMPGlobalCapturedDecl() has a parameter `unsigned Level`, but use `Level >= 0` as the condition of `while`, thus cause an infinite loop. Fix by changing the type of `Level` to `int`. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D86858 Files: clang/include/clang/Sema/Sema.h clang/lib/Sema/SemaOpenMP.cpp Index: clang/lib/Sema/SemaOpenMP.cpp =================================================================== --- clang/lib/Sema/SemaOpenMP.cpp +++ clang/lib/Sema/SemaOpenMP.cpp @@ -2410,7 +2410,7 @@ Regions[CaptureLevel] != OMPD_task; } -bool Sema::isOpenMPGlobalCapturedDecl(ValueDecl *D, unsigned Level, +bool Sema::isOpenMPGlobalCapturedDecl(ValueDecl *D, int Level, unsigned CaptureLevel) const { assert(LangOpts.OpenMP && "OpenMP is not allowed"); // Return true if the current level is no longer enclosed in a target region. Index: clang/include/clang/Sema/Sema.h =================================================================== --- clang/include/clang/Sema/Sema.h +++ clang/include/clang/Sema/Sema.h @@ -10114,7 +10114,7 @@ /// regions. /// \param Level Relative level of nested OpenMP construct for that /// the check is performed. - bool isOpenMPGlobalCapturedDecl(ValueDecl *D, unsigned Level, + bool isOpenMPGlobalCapturedDecl(ValueDecl *D, int Level, unsigned CaptureLevel) const; ExprResult PerformOpenMPImplicitIntegerConversion(SourceLocation OpLoc,
Index: clang/lib/Sema/SemaOpenMP.cpp =================================================================== --- clang/lib/Sema/SemaOpenMP.cpp +++ clang/lib/Sema/SemaOpenMP.cpp @@ -2410,7 +2410,7 @@ Regions[CaptureLevel] != OMPD_task; } -bool Sema::isOpenMPGlobalCapturedDecl(ValueDecl *D, unsigned Level, +bool Sema::isOpenMPGlobalCapturedDecl(ValueDecl *D, int Level, unsigned CaptureLevel) const { assert(LangOpts.OpenMP && "OpenMP is not allowed"); // Return true if the current level is no longer enclosed in a target region. Index: clang/include/clang/Sema/Sema.h =================================================================== --- clang/include/clang/Sema/Sema.h +++ clang/include/clang/Sema/Sema.h @@ -10114,7 +10114,7 @@ /// regions. /// \param Level Relative level of nested OpenMP construct for that /// the check is performed. - bool isOpenMPGlobalCapturedDecl(ValueDecl *D, unsigned Level, + bool isOpenMPGlobalCapturedDecl(ValueDecl *D, int Level, unsigned CaptureLevel) const; ExprResult PerformOpenMPImplicitIntegerConversion(SourceLocation OpLoc,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits