17a591a4aSRichard Smith // RUN: rm -rf %t 26f4e2e03SRichard Smith // RUN: %clang_cc1 -fmodules -fno-modules-error-recovery -std=c++14 \ 37a591a4aSRichard Smith // RUN: -fmodule-name=X -emit-module %S/Inputs/merge-template-pattern-visibility/module.modulemap -x c++ \ 46f4e2e03SRichard Smith // RUN: -fmodules-local-submodule-visibility -o %t/X.pcm 5*6561f92bSRichard Smith // RUN: %clang_cc1 -fmodules -fno-modules-error-recovery -std=c++14 \ 6*6561f92bSRichard Smith // RUN: -fmodule-name=Y -emit-module %S/Inputs/merge-template-pattern-visibility/module.modulemap -x c++ \ 7*6561f92bSRichard Smith // RUN: -fmodules-local-submodule-visibility -o %t/Y.pcm 8*6561f92bSRichard Smith // RUN: %clang_cc1 -fmodules -fno-modules-error-recovery -std=c++14 -fmodule-file=%t/X.pcm -fmodule-file=%t/Y.pcm \ 9*6561f92bSRichard Smith // RUN: -fmodules-local-submodule-visibility -verify %s -I%S/Inputs/merge-template-pattern-visibility 10*6561f92bSRichard Smith 11*6561f92bSRichard Smith #include "b.h" 12*6561f92bSRichard Smith #include "d.h" 13*6561f92bSRichard Smith 14*6561f92bSRichard Smith // expected-no-diagnostics g()15*6561f92bSRichard Smithvoid g() { 16*6561f92bSRichard Smith CrossModuleMerge::B<int> bi; 17*6561f92bSRichard Smith CrossModuleMerge::C(0); 18*6561f92bSRichard Smith } 19