[clang] 2114f71 - [OpenMP] Fix infinite loop in Sema::isOpenMPGlobalCapturedDecl()

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 1 05:46:13 PDT 2020


Author: Yang Fan
Date: 2020-09-01T08:45:38-04:00
New Revision: 2114f71aaa8dc2e75fe9cd79aa4d72d164e9b95d

URL: https://github.com/llvm/llvm-project/commit/2114f71aaa8dc2e75fe9cd79aa4d72d164e9b95d
DIFF: https://github.com/llvm/llvm-project/commit/2114f71aaa8dc2e75fe9cd79aa4d72d164e9b95d.diff

LOG: [OpenMP] Fix infinite loop in Sema::isOpenMPGlobalCapturedDecl()

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 loop condition to `Level > 0`.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D86858

Added: 
    

Modified: 
    clang/lib/Sema/SemaOpenMP.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 7b62c841b48a2..352f52d2f6260 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -2430,7 +2430,7 @@ bool Sema::isOpenMPGlobalCapturedDecl(ValueDecl *D, unsigned Level,
         DSAStackTy::DSAVarData DVar = DSAStack->getImplicitDSA(D, Level);
         if (DVar.CKind != OMPC_shared)
           return true;
-      } while (Level >= 0);
+      } while (Level > 0);
     }
   }
   return true;


        


More information about the cfe-commits mailing list