| // RUN: %clang_cc1 -fsyntax-only -DBOTH -verify %s |
| // If the decls come from a pch, the behavior shouldn't change: |
| // RUN: %clang_cc1 -x objective-c-header %s -emit-pch -o %t |
| // RUN: %clang_cc1 -DUSES -include-pch %t -fsyntax-only -verify %s |
| // expected-no-diagnostics |
| |
| // The slightly strange ifdefs are so that the command that builds the gch file |
| // doesn't need any -D switches, for these would get embedded in the gch. |
| |
| #ifndef USES |
| @interface Interface1 |
| - (void)partiallyUnavailableMethod; |
| @end |
| @interface Interface2 |
| - (void)partiallyUnavailableMethod __attribute__((unavailable)); |
| @end |
| #endif |
| |
| #if defined(USES) || defined(BOTH) |
| void f(id a) { |
| [a partiallyUnavailableMethod]; // no warning, `a` could be an Interface1. |
| } |
| #endif |