This patch extends D44120 to Objective-C messages that can also sometimes return C++ objects (in Objective-C++), but aren't inheriting from CallExpr. We'll now be able to properly destroy temporaries returned from such messages and/or materialize them. The analyzer picks up the newly added context automatically, as demonstrated by the new test case.
I removed the getCallReturnType() check because most of its branches aren't useful in our case.
Can we have a comment on why are filtering out GLValues here?