<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 16, 2012, at 3:08 PM, Jordan Rose wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 16, 2012, at 13:28 , Anna Zaks <<a href="mailto:ganna@apple.com">ganna@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><blockquote type="cite" style="font-family: monospace; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">+  switch (Call.getKind()) {<br>+  case CE_ObjCPropertyAccess:<br>+    BT = &BT_msg_arg;<br>+    // Getters do not have arguments, so we don't need to worry about this.<br>+    Desc = "Argument for property setter is an uninitialized value";<br>+    break;<br>+  case CE_ObjCMessage:<br>+    BT = &BT_msg_arg;<br>+    Desc = "Argument in message expression is an uninitialized value";<br>+    break;<br>+  case CE_Block:<br>+    BT = &BT_call_arg;<br>+    Desc = "Block call argument is an uninitialized value";<br>+    break;<br>+  default:<br>+    BT = &BT_call_arg;<br>+    Desc = "Function call argument is an uninitialized value";<br>+    break;<br> }<br></blockquote><br style="font-family: monospace; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span style="font-family: monospace; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; display: inline !important; float: none; ">Can we only switch/perform bug description assignment if we know there is an error?</span><br style="font-family: monospace; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "></blockquote></div><br><div>It's nicer to do it once here than after we've already dived down into the individual arguments. This isn't expensive; these are all pointer assignments.</div><div><br></div></div></blockquote><div><br></div><div>Discussed with Jordan off line that the price we pay here is the time it takes to construct the Call object which differentiates between Property access and regular ObjC message call.</div><div> </div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Jordan</div></div></blockquote></div><br></body></html>