ymandel accepted this revision.
ymandel added inline comments.
This revision is now accepted and ready to land.


================
Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:138
 
+static void forwardValue(const Expr &From, const Expr &To, Environment &Env) {
+  if (auto *Val = Env.getValueStrict(From))
----------------
mboehme wrote:
> sammccall wrote:
> > the name "forward" isn't clear to me - if anything suggesting std::forward, 
> > but not assignment.
> > 
> > Maybe `assignValue` or `copyValue`, and `aliasLocation` for the storageloc 
> > variant?
> > 
> > That leaves "forwardValueOrStorageLocation", but that only has one callsite 
> > and part of the point of this refactoring is that we're best thinking about 
> > these cases explicitly, right? So could just inline the if.
> (Haven't made any changes yet because I'd like to discuss first.)
> 
> > That leaves "forwardValueOrStorageLocation", but that only has one callsite 
> > and part of the point of this refactoring is that we're best thinking about 
> > these cases explicitly, right? So could just inline the if.
> 
> This function will end up being used in more places though. I have some draft 
> patches that use it (for the comma operator, for example) but these aren't 
> ready for review yet. But as I know the operation will be used elsewhere, it 
> made sense to create an abstraction now (and we'll definitely need a name for 
> it at some point).
> 
> I think the most generic of the names you suggest is `copy`, and I think it 
> works reasonably well: `copyValue()`, `copyStorageLocation()`, 
> `copyValueOrStorageLocation()`. WDYT?
I see Martin's point in not wanting to use copy/assign, since the same value 
will be shared between the locations. but, I see why "forward" has multiple 
meanings. Maybe "share" or "propogate"?


================
Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:751-752
+        Env.setValue(Loc, *Val);
+    } else {
+      if (Value *Val = Env.createValue(S->getType()))
+        Env.setValueStrict(*S, *Val);
----------------
just `else if`?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150655/new/

https://reviews.llvm.org/D150655

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to