10e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: rm -rf %t 287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=1 387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=2 487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=3 50e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// expected-no-diagnostics 60e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 70e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#if TEST == 1 80e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 90e2c34f92f00628d48968dfea096d36381f494cbStephen Hinestemplate<typename> struct A { int n; }; 100e2c34f92f00628d48968dfea096d36381f494cbStephen Hinestemplate<typename> struct B { typedef A<void> C; }; 110e2c34f92f00628d48968dfea096d36381f494cbStephen Hinestemplate class B<int>; 120e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 130e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#include "update.h" 140e2c34f92f00628d48968dfea096d36381f494cbStephen HinesB<int>::C use2; 150e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#elif TEST == 2 170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 180e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#include "c.h" 190e2c34f92f00628d48968dfea096d36381f494cbStephen HinesN::A<int> ai; 200e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#elif TEST == 3 220e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 230e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#include "merge.h" 240e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 250e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#else 260e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#error Unknown test 270e2c34f92f00628d48968dfea096d36381f494cbStephen Hines#endif 28