================
@@ -103,6 +103,23 @@ static StringRef ClassifyDiagnostic(QualType VDT) {
return "mutex";
}
+static unsigned getCapabilityExprFlags(QualType VDT) {
+ unsigned Flags = 0;
+
+ if (const auto *RT = VDT->getAs<RecordType>()) {
+ if (const auto *RD = RT->getDecl())
+ if (RD->hasAttr<ReentrantCapabilityAttr>())
+ Flags |= CapabilityExpr::FlagReentrant;
+ } else if (const auto *TT = VDT->getAs<TypedefType>()) {
+ if (const auto *TD = TT->getDecl())
+ if (TD->hasAttr<ReentrantCapabilityAttr>())
+ Flags |= CapabilityExpr::FlagReentrant;
+ } else if (VDT->isPointerOrReferenceType())
+ return getCapabilityExprFlags(VDT->getPointeeType());
+
+ return Flags;
+}
----------------
aaronpuchert wrote:
I suppose this could be merged with `ClassifyDiagnostic` as we're doing the
same cases, but maybe I'm missing something?
https://github.com/llvm/llvm-project/pull/137133
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits