diff options
-rw-r--r-- | lib/StaticAnalyzer/Core/BugReporterVisitors.cpp | 36 | ||||
-rw-r--r-- | test/Analysis/inlining/path-notes.cpp | 6 |
2 files changed, 28 insertions, 14 deletions
diff --git a/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index 4fbaec5d5f..18994ca0d0 100644 --- a/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ b/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp @@ -526,7 +526,7 @@ PathDiagnosticPiece *FindLastStoreBRVisitor::VisitNode(const ExplodedNode *Succ, "Initializing to "; } else if (isa<BlockExpr>(S)) { action = R->canPrintPretty() ? "captured by block as " : - "Capturing by block as "; + "Captured by block as "; if (VR) { // See if we can get the BlockVarRegion. ProgramStateRef State = StoreSite->getState(); @@ -580,7 +580,7 @@ PathDiagnosticPiece *FindLastStoreBRVisitor::VisitNode(const ExplodedNode *Succ, } } else { - os << (R->canPrintPretty() ? "initialized" : "Initializing") + os << (R->canPrintPretty() ? "initialized" : "Initialized") << " here"; } } @@ -626,19 +626,33 @@ PathDiagnosticPiece *FindLastStoreBRVisitor::VisitNode(const ExplodedNode *Succ, } } } + if (!b) { + if (R->canPrintPretty()) + os << "Null pointer value stored"; + else + os << "Storing null pointer value"; + } + + } else if (V.isUndef()) { + if (R->canPrintPretty()) + os << "Uninitialized value stored"; + else + os << "Storing uninitialized value"; - if (!b) - os << "Null pointer value stored"; - } - else if (V.isUndef()) { - os << "Uninitialized value stored"; } else if (Optional<nonloc::ConcreteInt> CV = V.getAs<nonloc::ConcreteInt>()) { - os << "The value " << CV->getValue() << " is assigned"; - } - else - os << "Value assigned"; + if (R->canPrintPretty()) + os << "The value " << CV->getValue() << " is assigned"; + else + os << "Assigning " << CV->getValue(); + } else { + if (R->canPrintPretty()) + os << "Value assigned"; + else + os << "Assigning value"; + } + if (R->canPrintPretty()) { os << " to "; R->printPretty(os); diff --git a/test/Analysis/inlining/path-notes.cpp b/test/Analysis/inlining/path-notes.cpp index d13bb5446c..5393fa2fcb 100644 --- a/test/Analysis/inlining/path-notes.cpp +++ b/test/Analysis/inlining/path-notes.cpp @@ -208,7 +208,7 @@ void testPathNoteOnInitializer() { int testNonPrintableAssignment(int **p) { int *&y = *p; // expected-note {{'y' initialized here}} - y = 0; // expected-note {{Null pointer value stored}} + y = 0; // expected-note {{Storing null pointer value}} return *y; // expected-warning {{Dereference of null pointer (loaded from variable 'y')}} // expected-note@-1 {{Dereference of null pointer (loaded from variable 'y')}} } @@ -3704,9 +3704,9 @@ int testNonPrintableAssignment(int **p) { // CHECK-NEXT: </array> // CHECK-NEXT: <key>depth</key><integer>0</integer> // CHECK-NEXT: <key>extended_message</key> -// CHECK-NEXT: <string>Null pointer value stored</string> +// CHECK-NEXT: <string>Storing null pointer value</string> // CHECK-NEXT: <key>message</key> -// CHECK-NEXT: <string>Null pointer value stored</string> +// CHECK-NEXT: <string>Storing null pointer value</string> // CHECK-NEXT: </dict> // CHECK-NEXT: <dict> // CHECK-NEXT: <key>kind</key><string>control</string> |