ymandel added a comment.

I'm a little confused by one of the points in the description:

> `setValueStrict()`: The RFC proposes that this should always create the same 
> StorageLocation for a given Value, but, in fact, the transfer functions that 
> exist today don't guarantee this; almost all transfer functions 
> unconditionally create a new `StorageLocation` when associating an expression 
> with a `Value`.

Since values are immutable, we (intentionally) share them between different 
storage locations. So, it makes sense that a single value could be associated 
with multiple storage locations. Now, there's a bug in that values aren't 
really immutable since you can update the fields, so we have a false sharing 
bug in the framework, but maybe that only applies to glvalues?



================
Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h:273
   ///
+  /// This function is deprecated; prefer `setStorageLocationStrict()`.
+  /// For details, see https://discourse.llvm.org/t/70086.
----------------
Use LLVM_DEPRECATED? here and below.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D150653

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

Reply via email to