]> granicus.if.org Git - clang/commitdiff
Revert r99024, "Augment path diagnostics to include displaying when a message
authorDaniel Dunbar <daniel@zuster.org>
Sat, 20 Mar 2010 04:28:39 +0000 (04:28 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Sat, 20 Mar 2010 04:28:39 +0000 (04:28 +0000)
expression", statistical evidence indicates it has some kind of memory error.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99040 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Checker/BugReporter/BugReporter.h
lib/Checker/BugReporter.cpp
lib/Checker/BugReporterVisitors.cpp

index da91e126f089ce9b47450262d8e9a16d99b33ada..6c41668ccece048ed413c7665a976fd3c357a738 100644 (file)
@@ -467,8 +467,6 @@ void registerTrackNullOrUndefValue(BugReporterContext& BRC, const void *stmt,
 void registerFindLastStore(BugReporterContext& BRC, const void *memregion,
                            const ExplodedNode *N);
 
-void registerNilReceiverVisitor(BugReporterContext &BRC);
-
 
 } // end namespace clang::bugreporter
 
index c7438447bbb94fe50b07d4add2fa918b9a14716d..0cf593b2600936991214d8fa48063c53160306fc 100644 (file)
@@ -1613,9 +1613,7 @@ void GRBugReporter::GeneratePathDiagnostic(PathDiagnostic& PD,
   else
     return;
 
-  // Register node visitors.
   R->registerInitialVisitors(PDB, N);
-  bugreporter::registerNilReceiverVisitor(PDB);
 
   switch (PDB.getGenerationScheme()) {
     case PathDiagnosticClient::Extensive:
index 6cf6d92efb844451cc4059f62822d928cf331fc8..6cf41b14dc5a3a756cc5691730e1a567f66f3b0a 100644 (file)
@@ -103,6 +103,7 @@ public:
       const ExplodedNode *Node = N, *Last = NULL;
 
       for ( ; Node ; Last = Node, Node = Node->getFirstPred()) {
+
         if (const VarRegion *VR = dyn_cast<VarRegion>(R)) {
           if (const PostStmt *P = Node->getLocationAs<PostStmt>())
             if (const DeclStmt *DS = P->getStmtAs<DeclStmt>())
@@ -247,6 +248,7 @@ public:
     // Check if in the previous state it was feasible for this constraint
     // to *not* be true.
     if (PrevN->getState()->Assume(Constraint, !Assumption)) {
+
       isSatisfied = true;
 
       // As a sanity check, make sure that the negation of the constraint
@@ -257,8 +259,8 @@ public:
 
       // We found the transition point for the constraint.  We now need to
       // pretty-print the constraint. (work-in-progress)
-      llvm::SmallString<256> sbuf;
-      llvm::raw_svector_ostream os(sbuf);
+      std::string sbuf;
+      llvm::raw_string_ostream os(sbuf);
 
       if (isa<Loc>(Constraint)) {
         os << "Assuming pointer value is ";
@@ -363,48 +365,3 @@ void clang::bugreporter::registerFindLastStore(BugReporterContext& BRC,
 
   BRC.addVisitor(new FindLastStoreBRVisitor(V, R));
 }
-
-namespace {
-class NilReceiverVisitor : public BugReporterVisitor {
-public:
-  NilReceiverVisitor() {}
-
-  PathDiagnosticPiece* VisitNode(const ExplodedNode *N,
-                                 const ExplodedNode *PrevN,
-                                 BugReporterContext& BRC) {
-
-    const PostStmt *P = N->getLocationAs<PostStmt>();
-    if (!P)
-      return 0;
-    const ObjCMessageExpr *ME = P->getStmtAs<ObjCMessageExpr>();
-    if (!ME)
-      return 0;
-    const Expr *Receiver = ME->getReceiver();
-    if (!Receiver)
-      return 0;
-    const GRState *state = N->getState();
-    const SVal &V = state->getSVal(Receiver);
-    const DefinedOrUnknownSVal *DV = dyn_cast<DefinedOrUnknownSVal>(&V);
-    if (!DV)
-      return 0;
-
-    state = state->Assume(*DV, true);
-    if (state)
-      return 0;
-
-    // The receiver was nil, and hence the method was skipped.
-    // Register a BugReporterVisitor to issue a message telling us how
-    // the receiver was null.
-    bugreporter::registerTrackNullOrUndefValue(BRC, Receiver, N);
-
-    //Issue a message saying that the method was skipped.
-    PathDiagnosticLocation L(Receiver, BRC.getSourceManager());
-    return new PathDiagnosticEventPiece(L, "No method actually called "
-                                           "because the receiver is nil");
-  }
-};
-} // end anonymous namespace
-
-void clang::bugreporter::registerNilReceiverVisitor(BugReporterContext &BRC) {
-  BRC.addVisitor(new NilReceiverVisitor());
-}