2 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fobjc-arc -I %S/Inputs -fmodules-cache-path=%t %s -verify -DUSE_1 -DUSE_2 -DUSE_3 -DUSE_4 -DUSE_5
3 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fobjc-arc -I %S/Inputs -fmodules-cache-path=%t %s -verify -DUSE_2 -DUSE_3 -DUSE_4 -DUSE_5
4 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fobjc-arc -I %S/Inputs -fmodules-cache-path=%t %s -verify -DUSE_3 -DUSE_4 -DUSE_5
5 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fobjc-arc -I %S/Inputs -fmodules-cache-path=%t %s -verify -DUSE_4 -DUSE_5
6 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fobjc-arc -I %S/Inputs -fmodules-cache-path=%t %s -verify -DUSE_5
8 // expected-note@Inputs/def.h:5 0-1{{here}}
9 // expected-note@Inputs/def.h:11 0-1{{here}}
10 // expected-note@Inputs/def.h:16 0-1{{here}}
11 // expected-note@Inputs/def-include.h:11 0-1{{here}}
15 class Def2; // expected-note 0-1{{forward decl}}
17 namespace Def3NS { class Def3; } // expected-note 0-1{{forward decl}}
26 A *a1; // expected-error{{declaration of 'A' must be imported from module 'decldef.Def'}}
39 // expected-error@-2{{definition of 'A' must be imported from module 'decldef.Def' before it is required}}
49 // expected-error@-2{{definition of 'B' must be imported from module 'decldef.Def' before it is required}}
59 // expected-error@-2{{definition of 'Def' must be imported from module 'decldef.Def' before it is required}}
70 // expected-error@-3 {{definition of 'Def2' must be imported}}