diff options
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index 54150ef2f25..f5b4e7c3a70 100644 --- a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp @@ -321,9 +321,11 @@ private: /// Get parameters associated with runtime definition in order /// to get the correct parameter name. ArrayRef<ParmVarDecl *> getCallParameters(CallEventRef<> Call) { - if (isa<FunctionDecl>(Call->getDecl())) - return dyn_cast<FunctionDecl>(Call->getRuntimeDefinition().getDecl()) - ->parameters(); + // Use runtime definition, if available. + RuntimeDefinition RD = Call->getRuntimeDefinition(); + if (auto *FD = dyn_cast_or_null<FunctionDecl>(RD.getDecl())) + return FD->parameters(); + return Call->parameters(); } |