]> granicus.if.org Git - clang/commitdiff
Add missing null checks in PseudoConstantAnalysis
authorTom Care <tom.care@uqconnect.edu.au>
Wed, 25 Aug 2010 22:46:03 +0000 (22:46 +0000)
committerTom Care <tom.care@uqconnect.edu.au>
Wed, 25 Aug 2010 22:46:03 +0000 (22:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112100 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/PseudoConstantAnalysis.cpp

index e8d056e77cddce494b8138bf5fda158faaca192e..ff43fc252aa3421bef4460b2f9f35e89765f787a 100644 (file)
@@ -92,7 +92,6 @@ void PseudoConstantAnalysis::RunAnalysis() {
       const BinaryOperator *BO = cast<BinaryOperator>(Head);
       // Look for a Decl on the LHS
       const Decl *LHSDecl = getDecl(BO->getLHS()->IgnoreParenCasts());
-
       if (!LHSDecl)
         break;
 
@@ -139,6 +138,8 @@ void PseudoConstantAnalysis::RunAnalysis() {
 
       // Look for a DeclRef in the subexpression
       const Decl *D = getDecl(UO->getSubExpr()->IgnoreParenCasts());
+      if (!D)
+        break;
 
       // We found a unary operator with a DeclRef as a subexpression. We now
       // check for any of the increment/decrement operators, as well as
@@ -181,6 +182,8 @@ void PseudoConstantAnalysis::RunAnalysis() {
 
         // Try to find a Decl in the initializer
         const Decl *D = getDecl(VD->getInit()->IgnoreParenCasts());
+        if (!D)
+          break;
 
         // If the reference is to another var, add the var to the non-constant
         // list