| // RUN: rm -rf %t |
| // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs/attr-unavailable %s -fsyntax-only -verify |
| |
| @import two; |
| void f(id x) { |
| [x method1]; |
| } |
| |
| @import oneA; |
| void g(id x) { |
| [x method2]; // expected-error{{'method2' is unavailable}} |
| // expected-note@oneA.h:2 {{'method2' has been explicitly marked unavailable here}} |
| [x method3]; // expected-error{{'method3' is unavailable}} |
| // expected-note@oneA.h:3 {{'method3' has been explicitly marked unavailable here}} |
| } |
| |
| @import oneB; |
| void h(id x) { |
| [x method2]; // could be from interface D in module oneB |
| } |
| |
| @import oneC; |
| void i(id x) { |
| [x method3]; // could be from interface E in module oncC |
| } |