| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fobjc-arc -fobjc-runtime-has-arc -o - %s | FileCheck %s |
| // RUN: %clang_cc1 -triple x86_64-apple-darwin11 -emit-llvm -fobjc-runtime-has-arc -o - %s | FileCheck %s |
| // rdar://8881826 |
| // rdar://9412038 |
| |
| @interface I |
| { |
| id ivar; |
| } |
| - (id) Meth; |
| + (id) MyAlloc;; |
| @end |
| |
| @implementation I |
| - (id) Meth { |
| @autoreleasepool { |
| id p = [I MyAlloc]; |
| if (!p) |
| return ivar; |
| } |
| return 0; |
| } |
| + (id) MyAlloc { |
| return 0; |
| } |
| @end |
| |
| // CHECK: call i8* @objc_autoreleasePoolPush |
| // CHECK: [[T:%.*]] = load i8** [[A:%.*]] |
| // CHECK: call void @objc_autoreleasePoolPop |