// RUN: %clang_cc1 -fmodules -verify %s -emit-llvm-only
// expected-no-diagnostics

#pragma clang module build A
module A {}
#pragma clang module contents
#pragma clang module begin A
template<typename T> auto f() { return []{}; }
#pragma clang module end
#pragma clang module endbuild

#pragma clang module build B
module B {}
#pragma clang module contents
#pragma clang module begin B
#pragma clang module import A
inline auto x1() { return f<int>(); }
inline auto z() { return []{}; }
inline auto x2() { return z(); }
#pragma clang module end
#pragma clang module endbuild

#pragma clang module build C
module C {}
#pragma clang module contents
#pragma clang module begin C
#pragma clang module import A
inline auto y1() { return f<int>(); }
inline auto z() { return []{}; }
inline auto y2() { return z(); }
inline auto q() { return []{}; }
inline auto y3() { return q(); }
#pragma clang module end
#pragma clang module endbuild

inline auto q() { return []{}; }
inline auto x3() { return q(); }

#pragma clang module import B
#pragma clang module import C
using T = decltype(x1);
using T = decltype(y1);

using U = decltype(x2);
using U = decltype(y2);

using V = decltype(x3);
using V = decltype(y3);

#pragma clang module import A
void (*p)() = f<int>();
