xref: /llvm-project/clang/test/Modules/using-directive-redecl.cpp (revision a544c51e94445ad655e512af690cb214aac73321)
1*a544c51eSRichard Smith // RUN: %clang_cc1 -fmodules -fmodules-local-submodule-visibility -verify %s
2*a544c51eSRichard Smith // expected-no-diagnostics
3*a544c51eSRichard Smith #pragma clang module build M
4*a544c51eSRichard Smith module M { module TDFNodes {} module TDFInterface {} }
5*a544c51eSRichard Smith #pragma clang module contents
6*a544c51eSRichard Smith   // TDFNodes
7*a544c51eSRichard Smith   #pragma clang module begin M.TDFNodes
8*a544c51eSRichard Smith   namespace Detail {
9*a544c51eSRichard Smith      namespace TDF {
10*a544c51eSRichard Smith         class TLoopManager {};
11*a544c51eSRichard Smith      }
12*a544c51eSRichard Smith   }
13*a544c51eSRichard Smith   namespace Internal {
14*a544c51eSRichard Smith      namespace TDF {
15*a544c51eSRichard Smith         using namespace Detail::TDF;
16*a544c51eSRichard Smith      }
17*a544c51eSRichard Smith   }
18*a544c51eSRichard Smith   #pragma clang module end
19*a544c51eSRichard Smith 
20*a544c51eSRichard Smith   // TDFInterface
21*a544c51eSRichard Smith   #pragma clang module begin M.TDFInterface
22*a544c51eSRichard Smith     #pragma clang module import M.TDFNodes
23*a544c51eSRichard Smith       namespace Internal {
24*a544c51eSRichard Smith         namespace TDF {
25*a544c51eSRichard Smith           using namespace Detail::TDF;
26*a544c51eSRichard Smith         }
27*a544c51eSRichard Smith       }
28*a544c51eSRichard Smith   #pragma clang module end
29*a544c51eSRichard Smith 
30*a544c51eSRichard Smith #pragma clang module endbuild
31*a544c51eSRichard Smith 
32*a544c51eSRichard Smith #pragma clang module import M.TDFNodes
33*a544c51eSRichard Smith namespace Internal {
34*a544c51eSRichard Smith   namespace TDF {
35*a544c51eSRichard Smith     TLoopManager * use;
36*a544c51eSRichard Smith   }
37*a544c51eSRichard Smith }
38