IntrusiveRefCntPtr<PathDiagnosticEventPiece>
PathDiagnosticCallPiece::getCallEnterWithinCallerEvent() const {
- if (!Callee)
- return 0;
SmallString<256> buf;
llvm::raw_svector_ostream Out(buf);
- if (isa<BlockDecl>(Callee))
- Out << "Entered call to block";
- else if (const NamedDecl *ND = dyn_cast<NamedDecl>(Callee))
- Out << "Entered call to '" << *ND << "'";
+ if (const NamedDecl *ND = dyn_cast_or_null<NamedDecl>(Caller))
+ Out << "Entered call from '" << *ND << "'";
+ else
+ Out << "Entered call";
StringRef msg = Out.str();
if (msg.empty())
return 0;
return 0;
SmallString<256> buf;
llvm::raw_svector_ostream Out(buf);
- if (const NamedDecl *ND = dyn_cast_or_null<NamedDecl>(Caller))
- Out << "Returning to '" << *ND << "'";
+ if (const NamedDecl *ND = dyn_cast_or_null<NamedDecl>(Callee))
+ Out << "Returning from '" << *ND << "'";
else
Out << "Returning to caller";
return new PathDiagnosticEventPiece(callReturn, Out.str());
// CHECK: </dict>
// CHECK: <key>depth</key><integer>1</integer>
// CHECK: <key>extended_message</key>
-// CHECK: <string>Entered call to 'has_bug'</string>
+// CHECK: <string>Entered call
// CHECK: <key>message</key>
-// CHECK: <string>Entered call to 'has_bug'</string>
+// CHECK: <string>Entered call
// CHECK: </dict>
// CHECK: <dict>
// CHECK: <key>kind</key><string>control</string>
// CHECK: <key>file</key><integer>0</integer>
// CHECK: </dict>
// CHECK: <key>extended_message</key>
-// CHECK: <string>Entered call to 'bug'</string>
+// CHECK: <string>Entered call
// CHECK: <key>message</key>
-// CHECK: <string>Entered call to 'bug'</string>
+// CHECK: <string>Entered call
// CHECK: </dict>
// CHECK: <dict>
// CHECK: <key>kind</key><string>control</string>
// CHECK: <key>file</key><integer>0</integer>
// CHECK: </dict>
// CHECK: <key>extended_message</key>
-// CHECK: <string>Entered call to 'wrapper'</string>
+// CHECK: <string>Entered call from 'test_wrapper'</string>
// CHECK: <key>message</key>
-// CHECK: <string>Entered call to 'wrapper'</string>
+// CHECK: <string>Entered call from 'test_wrapper'</string>
// CHECK: </dict>
// CHECK: <dict>
// CHECK: <key>kind</key><string>control</string>
// CHECK: </array>
// CHECK: </array>
// CHECK: <key>extended_message</key>
-// CHECK: <string>Returning to 'test_wrapper'</string>
+// CHECK: <string>Returning from 'wrapper'</string>
// CHECK: <key>message</key>
-// CHECK: <string>Returning to 'test_wrapper'</string>
+// CHECK: <string>Returning from 'wrapper'</string>
// CHECK: </dict>
// CHECK: <dict>
// CHECK: <key>kind</key><string>control</string>