1 | // RUN: %clang_cc1 -fmodules-ts %S/module.cppm -triple %itanium_abi_triple -emit-module-interface -o %t |
2 | // RUN: %clang_cc1 -fmodules-ts %s -triple %itanium_abi_triple -fmodule-file=%t -emit-llvm -o - | FileCheck %s --implicit-check-not=unused --implicit-check-not=global_module |
3 | |
4 | // CHECK-DAG: @extern_var_exported = external {{(dso_local )?}}global |
5 | // CHECK-DAG: @inline_var_exported = linkonce_odr {{(dso_local )?}}global |
6 | // CHECK-DAG: @_ZW6ModuleE19static_var_exported = available_externally {{(dso_local )?}}global i32 0 |
7 | // CHECK-DAG: @const_var_exported = available_externally {{(dso_local )?}}constant i32 3 |
8 | |
9 | import Module; |
10 | |
11 | void use() { |
12 | // CHECK: define linkonce_odr {{.*}}@_Z20used_inline_exportedv |
13 | used_inline_exported(); |
14 | // CHECK: declare {{.*}}@_Z18noninline_exportedv |
15 | noninline_exported(); |
16 | |
17 | (void)&extern_var_exported; |
18 | (void)&inline_var_exported; |
19 | (void)&static_var_exported; |
20 | (void)&const_var_exported; |
21 | |
22 | // Module-linkage declarations are not visible here. |
23 | } |
24 | |