DiagnosticInfo: Use Twine for resource name (#190228)

Allow more flexibility in phrasing of the overallocated
resource.
This commit is contained in:
Matt Arsenault 2026-04-02 21:41:38 +02:00 committed by GitHub
parent 43a8b7de88
commit a68ae7b0cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 23 additions and 4 deletions

View File

@ -1368,6 +1368,25 @@ inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
return DB;
}
inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
const llvm::Twine &S) {
DB.AddString(S.str());
return DB;
}
inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
const std::string &S) {
DB.AddString(S);
return DB;
}
inline const StreamingDiagnostic &
operator<<(const StreamingDiagnostic &DB,
const llvm::SmallVectorImpl<char> &S) {
DB.AddString(llvm::StringRef(S.data(), S.size()));
return DB;
}
inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
const char *Str) {
DB.AddTaggedVal(reinterpret_cast<intptr_t>(Str),

View File

@ -469,7 +469,7 @@ private:
const Function &Fn;
/// Description of the resource type (e.g. stack size)
const char *ResourceName;
const Twine &ResourceName;
/// The computed size usage
uint64_t ResourceSize;
@ -480,13 +480,13 @@ private:
public:
/// \p The function that is concerned by this stack size diagnostic.
/// \p The computed stack size.
DiagnosticInfoResourceLimit(const Function &Fn, const char *ResourceName,
DiagnosticInfoResourceLimit(const Function &Fn, const Twine &ResourceName,
uint64_t ResourceSize, uint64_t ResourceLimit,
DiagnosticSeverity Severity = DS_Warning,
DiagnosticKind Kind = DK_ResourceLimit);
const Function &getFunction() const { return Fn; }
const char *getResourceName() const { return ResourceName; }
const Twine &getResourceName() const { return ResourceName; }
uint64_t getResourceSize() const { return ResourceSize; }
uint64_t getResourceLimit() const { return ResourceLimit; }

View File

@ -104,7 +104,7 @@ void DiagnosticInfoRegAllocFailure::print(DiagnosticPrinter &DP) const {
}
DiagnosticInfoResourceLimit::DiagnosticInfoResourceLimit(
const Function &Fn, const char *ResourceName, uint64_t ResourceSize,
const Function &Fn, const Twine &ResourceName, uint64_t ResourceSize,
uint64_t ResourceLimit, DiagnosticSeverity Severity, DiagnosticKind Kind)
: DiagnosticInfoWithLocationBase(Kind, Severity, Fn, Fn.getSubprogram()),
Fn(Fn), ResourceName(ResourceName), ResourceSize(ResourceSize),