[clang] [analyzer] Use getFileName and do not use realpath names (PR #126039)
Utkarsh Saxena via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 6 01:49:19 PST 2025
https://github.com/usx95 created https://github.com/llvm/llvm-project/pull/126039
None
>From fedb0a7b6d30870a3d7f7c77f8d431fdba3d3a7d Mon Sep 17 00:00:00 2001
From: Utkarsh Saxena <usx at google.com>
Date: Thu, 6 Feb 2025 09:47:24 +0000
Subject: [PATCH] [analyzer] Use getFileName and do not use realpath names
---
clang/lib/StaticAnalyzer/Core/BugReporter.cpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/clang/lib/StaticAnalyzer/Core/BugReporter.cpp b/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
index 4100812c4623e90..13677ed341d0c4c 100644
--- a/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
+++ b/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
@@ -299,7 +299,8 @@ std::string timeTraceName(const BugReportEquivClass &EQ) {
return ("Flushing EQC " + BT.getDescription()).str();
}
-llvm::TimeTraceMetadata timeTraceMetadata(const BugReportEquivClass &EQ) {
+llvm::TimeTraceMetadata timeTraceMetadata(const BugReportEquivClass &EQ,
+ const SourceManager &SM) {
// Must be called only when constructing non-bogus TimeTraceScope
assert(llvm::timeTraceProfilerEnabled());
@@ -309,9 +310,7 @@ llvm::TimeTraceMetadata timeTraceMetadata(const BugReportEquivClass &EQ) {
const BugReport *R = BugReports.front().get();
const auto &BT = R->getBugType();
auto Loc = R->getLocation().asLocation();
- std::string File = "";
- if (const auto *Entry = Loc.getFileEntry())
- File = Entry->tryGetRealPathName().str();
+ std::string File = SM.getFilename(Loc).str();
return {BT.getCheckerName().str(), std::move(File),
static_cast<int>(Loc.getLineNumber())};
}
@@ -3150,8 +3149,9 @@ BugReport *PathSensitiveBugReporter::findReportInEquivalenceClass(
}
void BugReporter::FlushReport(BugReportEquivClass &EQ) {
- llvm::TimeTraceScope TCS{timeTraceName(EQ),
- [&EQ]() { return timeTraceMetadata(EQ); }};
+ llvm::TimeTraceScope TCS{timeTraceName(EQ), [&]() {
+ return timeTraceMetadata(EQ, getSourceManager());
+ }};
SmallVector<BugReport*, 10> bugReports;
BugReport *report = findReportInEquivalenceClass(EQ, bugReports);
if (!report)
More information about the cfe-commits
mailing list