xref: /llvm-project/clang/test/Modules/var-templates.cpp (revision dbc96b518b619d37aacf670e1a9d3b90b5614dd2)
1fa285df5SRichard Smith // RUN: %clang_cc1 -fmodules -std=c++14 -emit-llvm %s -o - -triple x86_64-linux-gnu | FileCheck %s
2891fc7f3SRichard Smith 
3891fc7f3SRichard Smith #pragma clang module build A
4891fc7f3SRichard Smith module A {}
5891fc7f3SRichard Smith #pragma clang module contents
6891fc7f3SRichard Smith #pragma clang module begin A
7891fc7f3SRichard Smith template<int> int n = 42;
8891fc7f3SRichard Smith decltype(n<0>) f();
9891fc7f3SRichard Smith #pragma clang module end
10891fc7f3SRichard Smith #pragma clang module endbuild
11891fc7f3SRichard Smith 
12891fc7f3SRichard Smith #pragma clang module build B
13891fc7f3SRichard Smith module B {}
14891fc7f3SRichard Smith #pragma clang module contents
15891fc7f3SRichard Smith #pragma clang module begin B
16891fc7f3SRichard Smith #pragma clang module import A
17891fc7f3SRichard Smith inline int f() { return n<0>; }
18891fc7f3SRichard Smith #pragma clang module end
19891fc7f3SRichard Smith #pragma clang module endbuild
20891fc7f3SRichard Smith 
21891fc7f3SRichard Smith #pragma clang module import B
22891fc7f3SRichard Smith 
23*dbc96b51SFangrui Song // CHECK: @_Z1nILi0EE = linkonce_odr global i32 42, comdat
24891fc7f3SRichard Smith int g() { return f(); }
25