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