From 482bf0f5315726c02afc3737a60ef6c857234265 Mon Sep 17 00:00:00 2001 From: George Karpenkov Date: Tue, 27 Feb 2018 19:19:49 +0000 Subject: [PATCH] [analyzer] Quickfix: don't crash when runtime definition is not available. llvm-svn: 326230 --- clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index 54150ef..f5b4e7c 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 getCallParameters(CallEventRef<> Call) { - if (isa(Call->getDecl())) - return dyn_cast(Call->getRuntimeDefinition().getDecl()) - ->parameters(); + // Use runtime definition, if available. + RuntimeDefinition RD = Call->getRuntimeDefinition(); + if (auto *FD = dyn_cast_or_null(RD.getDecl())) + return FD->parameters(); + return Call->parameters(); } -- 2.7.4