1 // RUN: %clang_cc1 -std=c++1z -fmodules %s -verify
2 // expected-no-diagnostics
4 #pragma clang module build std
5 module std
{ module limits
{} module other
{} }
6 #pragma clang module contents
7 #pragma clang module begin std.limits
8 template<typename T
> struct numeric_limits
{
9 static constexpr T __max
= 5;
10 static constexpr T
max() { return __max
; }
12 #pragma clang module end
13 #pragma clang module begin std.other
14 inline void f() { numeric_limits
<int> nl
; }
15 #pragma clang module end
16 #pragma clang module endbuild
18 #pragma clang module build module_b
20 #pragma clang module contents
21 #pragma clang module begin module_b
22 #pragma clang module import std.limits
23 constexpr int a
= numeric_limits
<int>::max();
24 #pragma clang module end
25 #pragma clang module endbuild
27 #pragma clang module import std.limits
28 #pragma clang module import module_b
30 static_assert(b
== 5);