[clang] [clang][ssaf] Implement TUSummaryBuilder with test infrastructure (PR #181220)

Balázs Benics via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 12 11:55:14 PST 2026


================
@@ -0,0 +1,17 @@
+#include "clang/Analysis/Scalable/TUSummary/TUSummaryBuilder.h"
+#include "clang/Analysis/Scalable/Model/EntityId.h"
+#include "clang/Analysis/Scalable/TUSummary/TUSummary.h"
+#include <memory>
+
+using namespace clang;
+using namespace ssaf;
+
+EntityId TUSummaryBuilder::addEntity(const EntityName &E) {
+  return Summary.IdTable.getId(E);
+}
+
+void TUSummaryBuilder::addFact(EntityId ContributingEntity,
+                               std::unique_ptr<EntitySummary> NewData) {
+  Summary.Data[NewData->getSummaryName()][ContributingEntity] =
+      std::move(NewData);
+}
----------------
steakhal wrote:

There is no easy way of checking this precondition. Maybe something like this would work:
```c++
#if defined(EXPENSIVE_CHECKS) && defined(DEBUG)
  bool Exists = false;
  Summary.IdTable.forEach([&](const EntityName &, EntityId ID) {
    Exists |= ID == ContributingEntity;
  });
  assert(Exists);
#endif
```

https://github.com/llvm/llvm-project/pull/181220


More information about the cfe-commits mailing list