[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / shadow.m
blob44320af2b0c660380cd0deeebfa170c58d0cef63
1 // RUN: rm -rf %t
2 // RUN: not %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs/shadow/A1 -I %S/Inputs/shadow/A2 %s -fsyntax-only 2>&1 | FileCheck %s -check-prefix=REDEFINITION
3 // RUN: not %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/shadow/A1/module.modulemap -fmodule-map-file=%S/Inputs/shadow/A2/module.modulemap %s -fsyntax-only 2>&1 | FileCheck %s -check-prefix=REDEFINITION
4 // REDEFINITION: error: redefinition of module 'A'
5 // REDEFINITION: note: previously defined
7 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/shadow/A1/module.modulemap -I %S/Inputs/shadow %s -verify
9 @import A1;
10 @import A2;
11 @import A;
13 #import "A2/A.h" // expected-note {{implicitly imported}}
14 // expected-error@A2/module.modulemap:1 {{import of shadowed module 'A'}}
15 // expected-note@A1/module.modulemap:1 {{previous definition}}
17 #if defined(A2_A_h)
18 #error got the wrong definition of module A
19 #elif !defined(A1_A_h)
20 #error missing definition from A1
21 #endif