ahatanak added inline comments.

================
Comment at: clang/lib/CodeGen/CGObjC.cpp:1125
+    llvm::Type *selType = CGF.ConvertType(CGF.getContext().getObjCSelType());
+    return llvm::UndefValue::get(selType);
+  }
----------------
mwyman wrote:
> nlopes wrote:
> > mwyman wrote:
> > > nlopes wrote:
> > > > Please consider using PoisonValue here instead (if appropriate). We are 
> > > > trying to get rid of undef.
> > > > Thank you!
> > > > A poison value is a result of an erroneous operation.
> > > 
> > > I could very well be misunderstanding, but based on this description from 
> > > LangRef.html `PoisonValue` doesn't seem appropriate here; this is not 
> > > "erroneous" behavior: it is just continuing the behavior prior to 
> > > removing the `_cmd` implicit argument from the ABI, which was that the 
> > > value was `undef` from the generated getter/setter's caller.
> > > 
> > > https://github.com/llvm/llvm-project/blob/49acab3f1408be9439a57833aa7b67678c9a05ba/clang/lib/CodeGen/CGObjCMac.cpp#L2142
> > > 
> > > Since this is (essentially) replicating that behavior, I'm not sure 
> > > `PoisonValue` is what we want.
> > If the value is not used, then it can be poison.
> > If it gets used somehow then it depends on the callers. I don't know 
> > anything about ObjC to know what the right answer is here.
> > As we want to remove undef, the fewer the uses the better. Thank you!
> Fair enough. I've changed to pass poison into the helper functions.
It looks like `_cmd` is unused in both `objc_getProperty` and 
`objc_setProperty`, so I think this is fine.
 
https://github.com/opensource-apple/objc4/blob/master/runtime/objc-accessors.mm


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

https://reviews.llvm.org/D135091

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

Reply via email to