[cfe-commits] r121081 - in /cfe/trunk/lib/Sema: SemaDecl.cpp SemaDeclCXX.cpp SemaExpr.cpp

Douglas Gregor dgregor at apple.com
Mon Dec 6 16:41:46 PST 2010


Author: dgregor
Date: Mon Dec  6 18:41:46 2010
New Revision: 121081

URL: http://llvm.org/viewvc/llvm-project?rev=121081&view=rev
Log:
Use Sema::MaybeCreateExprWithCleanups() only after we've checked for a NULL/invalid expression

Modified:
    cfe/trunk/lib/Sema/SemaDecl.cpp
    cfe/trunk/lib/Sema/SemaDeclCXX.cpp
    cfe/trunk/lib/Sema/SemaExpr.cpp

Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=121081&r1=121080&r2=121081&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Mon Dec  6 18:41:46 2010
@@ -3037,7 +3037,7 @@
                                                       SourceLocation(),
                                                       Owned(E));
       if (!Res.isInvalid()) {
-        Res = MaybeCreateExprWithCleanups(Res.get());
+        Res = MaybeCreateExprWithCleanups(Res);
         Expr *Init = Res.takeAs<Expr>();
         Context.setBlockVarCopyInits(NewVD, Init);
       }
@@ -4805,7 +4805,7 @@
       if (Init.isInvalid())
         Var->setInvalidDecl();
       else if (Init.get()) {
-        Var->setInit(MaybeCreateExprWithCleanups(Init.takeAs<Expr>()));
+        Var->setInit(MaybeCreateExprWithCleanups(Init.get()));
 
         if (getLangOptions().CPlusPlus && !Var->isInvalidDecl() && 
             Var->hasGlobalStorage() && !Var->isStaticLocal() &&

Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=121081&r1=121080&r2=121081&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Mon Dec  6 18:41:46 2010
@@ -1327,7 +1327,7 @@
     // C++0x [class.base.init]p7:
     //   The initialization of each base and member constitutes a
     //   full-expression.
-    MemberInit = MaybeCreateExprWithCleanups(MemberInit.get());
+    MemberInit = MaybeCreateExprWithCleanups(MemberInit);
     if (MemberInit.isInvalid())
       return true;
 
@@ -1459,7 +1459,7 @@
   // C++0x [class.base.init]p7:
   //   The initialization of each base and member constitutes a 
   //   full-expression.
-  BaseInit = MaybeCreateExprWithCleanups(BaseInit.get());
+  BaseInit = MaybeCreateExprWithCleanups(BaseInit);
   if (BaseInit.isInvalid())
     return true;
 
@@ -1552,10 +1552,7 @@
     assert(false && "Unhandled initializer kind!");
   }
 
-  if (BaseInit.isInvalid())
-    return true;
-      
-  BaseInit = SemaRef.MaybeCreateExprWithCleanups(BaseInit.get());
+  BaseInit = SemaRef.MaybeCreateExprWithCleanups(BaseInit);
   if (BaseInit.isInvalid())
     return true;
         
@@ -1669,7 +1666,7 @@
     ExprResult MemberInit
       = InitSeq.Perform(SemaRef, Entities.back(), InitKind, 
                         MultiExprArg(&CopyCtorArgE, 1));
-    MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit.get());
+    MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit);
     if (MemberInit.isInvalid())
       return true;
 
@@ -1694,10 +1691,8 @@
     InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, 0, 0);
     ExprResult MemberInit = 
       InitSeq.Perform(SemaRef, InitEntity, InitKind, MultiExprArg());
-    if (MemberInit.isInvalid())
-      return true;
 
-    MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit.get());
+    MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit);
     if (MemberInit.isInvalid())
       return true;
     
@@ -5547,7 +5542,7 @@
 
   CheckImplicitConversions(Result.get(), LParenLoc);
   
-  Result = MaybeCreateExprWithCleanups(Result.get());
+  Result = MaybeCreateExprWithCleanups(Result);
   VDecl->setInit(Result.takeAs<Expr>());
   VDecl->setCXXDirectInitializer(true);
 
@@ -7037,7 +7032,7 @@
       InitializationSequence InitSeq(*this, InitEntity, InitKind, 0, 0);
       ExprResult MemberInit = 
         InitSeq.Perform(*this, InitEntity, InitKind, MultiExprArg());
-      MemberInit = MaybeCreateExprWithCleanups(MemberInit.get());
+      MemberInit = MaybeCreateExprWithCleanups(MemberInit);
       // Note, MemberInit could actually come back empty if no initialization 
       // is required (e.g., because it would call a trivial default constructor)
       if (!MemberInit.get() || MemberInit.isInvalid())

Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=121081&r1=121080&r2=121081&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Mon Dec  6 18:41:46 2010
@@ -2278,7 +2278,7 @@
                                                          SourceLocation(),
                                                          Owned(E));
             if (!Res.isInvalid()) {
-              Res = MaybeCreateExprWithCleanups(Res.get());
+              Res = MaybeCreateExprWithCleanups(Res);
               Expr *Init = Res.takeAs<Expr>();
               BDRE->setCopyConstructorExpr(Init);
             }





More information about the cfe-commits mailing list