blob: 93d36ff4750ac22e04cb1b0ed677003812521f2f [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
Anders Carlsson1fe598c2009-11-24 05:16:24 +00002
3// CHECK: ; ModuleID
4struct A {
5 template<typename T>
6 A(T);
7};
8
9template<typename T> A::A(T) {}
Anders Carlsson7e120032009-11-24 05:36:32 +000010
11struct B {
12 template<typename T>
13 B(T);
14};
15
16template<typename T> B::B(T) {}
17
Stephen Lin93ab6bf2013-08-15 06:47:53 +000018// CHECK-LABEL: define weak_odr void @_ZN1BC2IiEET_(%struct.B* %this, i32) unnamed_addr
Stephen Hines651f13c2014-04-23 16:59:28 -070019// CHECK-LABEL: define weak_odr void @_ZN1BC1IiEET_(%struct.B* %this, i32) unnamed_addr
Anders Carlsson7e120032009-11-24 05:36:32 +000020template B::B(int);
Anders Carlssona244dc32009-11-24 16:52:50 +000021
22template<typename T>
23struct C {
24 void f() {
25 int a[] = { 1, 2, 3 };
26 }
27};
28
29void f(C<int>& c) {
30 c.f();
31}