crash in ir-gen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66302
91177308-0d34-0410-b5e6-
96231b3b80d8
LHS, RHS, "cmp");
} else {
// Unsigned integers and pointers.
+ // Casting becomes necessary with -fobjc-gc as one or the other my turn
+ // into an 'id' type due to generation of read barriers.
+ RHS = Builder.CreateBitCast(RHS, LHS->getType());
Result = Builder.CreateICmp((llvm::ICmpInst::Predicate)UICmpOpc,
LHS, RHS, "cmp");
}
--- /dev/null
+// RUN: clang -fnext-runtime -fobjc-gc -emit-llvm -o %t %s
+
+@interface PBXTarget
+{
+
+PBXTarget * __weak _lastKnownTarget;
+PBXTarget * __weak _KnownTarget;
+PBXTarget * result;
+}
+- Meth;
+@end
+
+@implementation PBXTarget
+- Meth {
+ if (_lastKnownTarget != result)
+ foo();
+ if (result != _lastKnownTarget)
+ foo();
+
+ if (_lastKnownTarget != _KnownTarget)
+ foo();
+}
+
+@end