[cfe-commits] [PATCH][Review Request]CXXDefaultArg handling

Jim Goodnow II jim at thegoodnows.net
Sun Dec 5 17:12:17 PST 2010


For the current intraprocedural analysis, I don't think anything 
really needs to be done for this class, but I left a FIXME for the 
future interprocedural analysis where CallEnter will need to deal 
with the actual default arguments for the called procedure.

  - jim

Index: lib/Checker/GRExprEngine.cpp
===================================================================
--- lib/Checker/GRExprEngine.cpp	(revision 120972)
+++ lib/Checker/GRExprEngine.cpp	(working copy)
@@ -795,7 +795,6 @@
      // C++ stuff we don't support yet.
      case Stmt::CXXBindTemporaryExprClass:
      case Stmt::CXXCatchStmtClass:
-    case Stmt::CXXDefaultArgExprClass:
      case Stmt::CXXDependentScopeMemberExprClass:
      case Stmt::CXXExprWithTemporariesClass:
      case Stmt::CXXNullPtrLiteralExprClass:
@@ -946,6 +945,12 @@
        break;
      }

+    // FIXME: for now, nothing to do, so just ignore, will want to do more
+    // when doing interprocedural calls
+    case Stmt::CXXDefaultArgExprClass:
+      Dst.insert(Pred);
+      break;
+
      case Stmt::CXXNewExprClass: {
        const CXXNewExpr *NE = cast<CXXNewExpr>(S);
        VisitCXXNewExpr(NE, Pred, Dst);
-------------- next part --------------
Index: lib/Checker/GRExprEngine.cpp
===================================================================
--- lib/Checker/GRExprEngine.cpp	(revision 120972)
+++ lib/Checker/GRExprEngine.cpp	(working copy)
@@ -795,7 +795,6 @@
     // C++ stuff we don't support yet.
     case Stmt::CXXBindTemporaryExprClass:
     case Stmt::CXXCatchStmtClass:
-    case Stmt::CXXDefaultArgExprClass:
     case Stmt::CXXDependentScopeMemberExprClass:
     case Stmt::CXXExprWithTemporariesClass:
     case Stmt::CXXNullPtrLiteralExprClass:
@@ -946,6 +945,12 @@
       break;
     }
 
+    // FIXME: for now, nothing to do, so just ignore, will want to do more
+    // when doing interprocedural calls
+    case Stmt::CXXDefaultArgExprClass:
+      Dst.insert(Pred);
+      break;
+
     case Stmt::CXXNewExprClass: {
       const CXXNewExpr *NE = cast<CXXNewExpr>(S);
       VisitCXXNewExpr(NE, Pred, Dst);


More information about the cfe-commits mailing list