1f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor// Test this without pch.
2762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -include %S/cxx-variadic-templates.h -verify %s -ast-dump -o -
3762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -include %S/cxx-variadic-templates.h %s -emit-llvm -o - | FileCheck %s
4f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor
5f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor// Test with pch.
6762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -x c++-header -emit-pch -o %t %S/cxx-variadic-templates.h
7762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -include-pch %t -verify %s -ast-dump  -o -
8762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -include-pch %t %s -emit-llvm -o - | FileCheck %s
9f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor
108e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics
118e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs
12f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregor// CHECK: allocate_shared
13f9997a0834e0e0298b04ef044ad2699c727a7979Douglas Gregorshared_ptr<int> spi = shared_ptr<int>::allocate_shared(1, 2);
146964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smith
156964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smithtemplate<int> struct A {};
166964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smithtemplate<int> struct B {};
176964b3f80ce1ba489e7e25e7cd58062699af9b0cRichard Smithouter<int, int>::inner<1, 2, A, B> i(A<1>{}, B<2>{});
18