// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -load-bool-from-mem=strict -O1 -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-UNDEF // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -load-bool-from-mem=strict -O0 -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-NONZERO // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -load-bool-from-mem=nonstrict -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-NONZERO // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -load-bool-from-mem=truncate -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-TRUNCATE // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -load-bool-from-mem=nonzero -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-NONZERO @interface BoolProp @property (nonatomic) _Bool b; @end @implementation BoolProp @synthesize b; @end // CHECK-LABEL: -[BoolProp b] // CHECK-UNDEF: [[BOOL:%.+]] = trunc nuw i8 %{{.+}} to i1 // CHECK-TRUNCATE: [[BOOL:%.+]] = trunc i8 %{{.+}} to i1 // CHECK-NONZERO: [[BOOL:%.+]] = icmp ne i8 %{{.+}}, 0 // CHECK: ret i1 [[BOOL]]