1// RUN: rm -rf %t
2// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs/attr-unavailable %s -fsyntax-only -verify
3
4@import two;
5void f(id x) {
6  [x method1];
7}
8
9@import oneA;
10void g(id x) {
11  [x method2]; // expected-error{{'method2' is unavailable}}
12               // expected-note@oneA.h:2 {{'method2' has been explicitly marked unavailable here}}
13  [x method3]; // expected-error{{'method3' is unavailable}}
14               // expected-note@oneA.h:3 {{'method3' has been explicitly marked unavailable here}}
15}
16
17@import oneB;
18void h(id x) {
19  [x method2]; // could be from interface D in module oneB
20}
21
22@import oneC;
23void i(id x) {
24  [x method3]; // could be from interface E in module oncC
25}
26