While usually we'd use a symbolic region rather than a straight-up Unknown,
we can still generate unknowns via array subscripts with symbolic indexes.
(And if this ever changes in the future, we still shouldn't crash.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161059
91177308-0d34-0410-b5e6-
96231b3b80d8
ReceiverT = cast<ObjCObjectPointerType>(SupersType.getTypePtr());
} else {
const MemRegion *Receiver = getReceiverSVal().getAsRegion();
+ if (!Receiver)
+ return 0;
+
DynamicTypeInfo TI = getState()->getDynamicTypeInfo(Receiver);
ReceiverT = dyn_cast<ObjCObjectPointerType>(TI.getType().getTypePtr());
}
- (int) method2 {
return 5/_attribute; // expected-warning {{Division by zero}}
}
-@end
\ No newline at end of file
+@end
+
+
+// Don't crash if we don't know the receiver's region.
+void randomlyMessageAnObject(MyClass *arr[], int i) {
+ (void)[arr[i] getInt];
+}
\ No newline at end of file