// RUN: %clang_cc1 -std=c++1z -fmodules %s -verify // expected-no-diagnostics #pragma clang module build std module std { module limits {} module other {} } #pragma clang module contents #pragma clang module begin std.limits template<typename T> struct numeric_limits { static constexpr T __max = 5; static constexpr T max() { return __max; } }; #pragma clang module end #pragma clang module begin std.other inline void f() { numeric_limits<int> nl; } #pragma clang module end #pragma clang module endbuild #pragma clang module build module_b module module_b {} #pragma clang module contents #pragma clang module begin module_b #pragma clang module import std.limits constexpr int a = numeric_limits<int>::max(); #pragma clang module end #pragma clang module endbuild #pragma clang module import std.limits #pragma clang module import module_b constexpr int b = a; static_assert(b == 5); |