schittir added inline comments.

================
Comment at: clang/lib/Parse/ParseStmt.cpp:887
+      else {
+        assert(DeepestParsedCaseStmt && "DeepestParsedCaseStmt cannot be 
null");
         Actions.ActOnCaseStmtBody(DeepestParsedCaseStmt, Case.get());
----------------
Fznamznon wrote:
> The assert that looks like `assert(x && "x should not be null")` seems 
> strange. Failed `assert(x)` implies that `x` should not be null. If there is 
> a message, a message saying what is wrong and why is much more useful.
Would you suggest removing the message and changing it to 
```
assert(DeepestParsedCaseStmt);
``` 


I am not sure what message would be useful here. 


================
Comment at: clang/lib/Sema/SemaExprObjC.cpp:2441
 
+  assert(receiverTypeInfo && "receiverTypeInfo cannot be null");
   return BuildClassMessage(receiverTypeInfo, ReceiverType,
----------------
Fznamznon wrote:
> That seems to be a strange place before and after changes. With or without 
> change, when `ReceiverType.isNull()` is true we just end up passing `nullptr` 
>  as `receiverTypeInfo ` to the `BuildClassMessage` which doesn't seem to be 
> checking its non-nullness before dereferencing it, even though its 
> description says that `receiverTypeInfo` can be null. 
> I guess it is fine to pass `nullptr` to a function whose description says so, 
> but the non-nullness check inside of it should be probably a bit more obvious 
> than it is right now.
I see your point about passing `ReceiverTypeInfo` as nullptr to 
`BuildClassMessage` method - it seems ok to do that. 
Would it make sense to add an `assert(ReceiverTypeInfo);` inside the method as 
way of making the non-nullness check more obvious? 


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

https://reviews.llvm.org/D153236

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

Reply via email to