================
@@ -2523,6 +2523,20 @@ bool ExprEngine::replayWithoutInlining(ExplodedNode *N,
   return true;
 }
 
+/// Return the innermost location context which is inlined at `Node`, unless
+/// it's the top-level (entry point) location context.
+static const LocationContext *getInlinedLocationContext(ExplodedNode *Node,
+                                                        ExplodedGraph &G) {
+  const LocationContext *CalleeLC = Node->getLocation().getLocationContext();
+  const LocationContext *RootLC =
----------------
NagyDonat wrote:

I surveyed references to the root nodes of the graph and it seems that the 
analyzer doesn't create more than one root node within a single `ExplodedGraph` 
(it does create new root node in a new graph when it creates the trimmed graph 
for a bug report) and most locations that reference `roots_begin` work with the 
assumption that there is only a single root node.

To avoid this sort of confusion in the future, I think it would be useful to 
replace `std::vector<ExplodedNode *> Roots` with a single `ExplodedNode *Root` 
within a separate follow-up commit.

https://github.com/llvm/llvm-project/pull/136720
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to