// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin -fblocks -emit-llvm -o - %s | FileCheck %s
// @implementation Base
// {
// int dummy;
// }
// @end
// CHECK: define internal i8* @"\01-[Derived init]"
// CHECK: [[IVAR:%.*]] = load i64, i64* @"OBJC_IVAR_$_Derived.member", align 8, !invariant.load
void *
// CHECK-LABEL: define{{.*}} i8* @variant_load_1(i32 noundef %i)
// CHECK: [[IVAR:%.*]] = load i64, i64* @"OBJC_IVAR_$_Derived.member", align 8{{$}}
// CHECK-LABEL: define internal i8* @"\01-[Container invariant_load_1]"
// CHECK: [[IVAR:%.*]] = load i64, i64* @"OBJC_IVAR_$_Derived.member", align 8, !invariant.load
// CHECK-LABEL: define internal i8* @block_block_invoke
// CHECK: load i64, i64* @"OBJC_IVAR_$_ForBlock.foo"
= ^ ;