1275a55cbSDavid Blaikie // RUN: rm -rf %t 2e78cb1f2SReid Kleckner // RUN: %clang_cc1 -triple %itanium_abi_triple -fmodules -fmodules-cache-path=%t %s -emit-llvm -o - | FileCheck %s 3275a55cbSDavid Blaikie 4*dd0fe187SDavid Blaikie // CHECK: @{{.*var.*}} = {{.*}} %union.union_type { i8 1 }, 5275a55cbSDavid Blaikie 6275a55cbSDavid Blaikie #pragma clang module build bar 7275a55cbSDavid Blaikie module bar { 8275a55cbSDavid Blaikie header "bar.h" { size 40 mtime 0 } 9275a55cbSDavid Blaikie export * 10275a55cbSDavid Blaikie } 11275a55cbSDavid Blaikie #pragma clang module contents 12275a55cbSDavid Blaikie #pragma clang module begin bar 13275a55cbSDavid Blaikie union union_type { 14275a55cbSDavid Blaikie char h{1}; 15275a55cbSDavid Blaikie }; 16275a55cbSDavid Blaikie #pragma clang module end 17275a55cbSDavid Blaikie #pragma clang module endbuild 18275a55cbSDavid Blaikie #pragma clang module build foo 19275a55cbSDavid Blaikie module foo { 20275a55cbSDavid Blaikie header "foo.h" { size 97 mtime 0 } 21275a55cbSDavid Blaikie export * 22275a55cbSDavid Blaikie } 23275a55cbSDavid Blaikie #pragma clang module contents 24275a55cbSDavid Blaikie #pragma clang module begin foo 25275a55cbSDavid Blaikie union union_type { 26275a55cbSDavid Blaikie char h{1}; 27275a55cbSDavid Blaikie }; 28275a55cbSDavid Blaikie #pragma clang module import bar 29275a55cbSDavid Blaikie template<typename T> 30275a55cbSDavid Blaikie union_type var; 31275a55cbSDavid Blaikie #pragma clang module end 32275a55cbSDavid Blaikie #pragma clang module endbuild 33275a55cbSDavid Blaikie #pragma clang module import foo main()34275a55cbSDavid Blaikieint main() { 35275a55cbSDavid Blaikie (void)&var<int>; 36275a55cbSDavid Blaikie } 37