[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / dependent-module-different-location.m
blobafbadfcf40c930ee5c2c93f5e68ea4ed3928d62b
1 // RUN: rm -rf %t
2 // RUN: split-file %s %t
3 //
4 // At first build Stable.pcm that references Movable.framework from StableFrameworks.
5 // RUN: %clang_cc1 -fsyntax-only -F %t/JustBuilt -F %t/StableFrameworks %t/prepopulate-module-cache.m \
6 // RUN:            -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/modules.cache
7 //
8 // Now add Movable.framework to JustBuilt.
9 // RUN: mkdir %t/JustBuilt
10 // RUN: cp -r %t/StableFrameworks/Movable.framework %t/JustBuilt/Movable.framework
12 // Load Movable.pcm at first for JustBuilt location and then in the same TU try to load transitively for StableFrameworks location.
13 // RUN: %clang_cc1 -fsyntax-only -F %t/JustBuilt -F %t/StableFrameworks %t/trigger-error.m \
14 // RUN:            -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/modules.cache
16 // Test the case when a dependent module is found in a different location, so
17 // module cache has outdated information.
19 //--- StableFrameworks/Movable.framework/Headers/Movable.h
20 // empty
22 //--- StableFrameworks/Movable.framework/Modules/module.modulemap
23 framework module Movable {
24   header "Movable.h"
25   export *
29 //--- StableFrameworks/Stable.framework/Headers/Stable.h
30 #import <Movable/Movable.h>
32 //--- StableFrameworks/Stable.framework/Modules/module.modulemap
33 framework module Stable {
34   header "Stable.h"
35   export *
39 //--- prepopulate-module-cache.m
40 #import <Stable/Stable.h>
42 //--- trigger-error.m
43 #import <Movable/Movable.h>
44 #import <Stable/Stable.h>