// UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}}
// Test for assertion failure due to objc_externally_retained on a function.
// Without PCH
// RUN: %clang_cc1 -fsyntax-only -verify -fobjc-arc -include %s %s
// With PCH
// RUN: %clang_cc1 %s -emit-pch -fobjc-arc -o %t
// RUN: %clang_cc1 -emit-llvm-only -verify %s -fobjc-arc -include-pch %t -debug-info-kind=limited
// expected-no-diagnostics
#ifndef HEADER
#define HEADER
//===----------------------------------------------------------------------===//
// Header
__attribute__((objc_externally_retained)) void doSomething(id someObject);
id sharedObject = 0;
//===----------------------------------------------------------------------===//
#else
//===----------------------------------------------------------------------===//
void callDoSomething(void) {
doSomething(sharedObject);
}
//===----------------------------------------------------------------------===//
#endif