blob: 8c4f2c9127091209e846ee927e45f64b072d7c8e [file] [log] [blame]
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +00001// RUN: clang-cc -triple x86_64-apple-darwin -std=c++0x -S %s -o %t-64.s &&
2// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s &&
3// RUN: clang-cc -triple i386-apple-darwin -std=c++0x -S %s -o %t-32.s &&
4// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s &&
5// RUN: true
Douglas Gregor72f6d672009-09-01 21:04:42 +00006
7// PR4826
8struct A {
9 A() {
10 }
11};
12
13template<typename T>
14struct B {
15 B(T) {}
16
17 A nodes;
18};
19
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000020
21// PR4853
22template <typename T> class List {
23public:
Mike Stump1eb44332009-09-09 15:08:12 +000024 List(){ } // List<BinomialNode<int>*>::List() remains undefined.
Fariborz Jahanian34374e62009-09-03 23:18:17 +000025 ~List() {}
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000026};
27
Fariborz Jahanian9d436202009-09-03 21:32:41 +000028template <typename T> class Node {
29 int i;
30public:
31 Node(){ } // Node<BinomialNode<int>*>::Node() remains undefined.
Fariborz Jahanian34374e62009-09-03 23:18:17 +000032 ~Node() {}
Fariborz Jahanian9d436202009-09-03 21:32:41 +000033};
34
35
36template<typename T> class BinomialNode : Node<BinomialNode<T>*> {
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000037public:
38 BinomialNode(T value) {}
39 List<BinomialNode<T>*> nodes;
40};
41
Douglas Gregor72f6d672009-09-01 21:04:42 +000042int main() {
43 B<int> *n = new B<int>(4);
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000044 BinomialNode<int> *node = new BinomialNode<int>(1);
Fariborz Jahanian34374e62009-09-03 23:18:17 +000045 delete node;
Douglas Gregor72f6d672009-09-01 21:04:42 +000046}
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000047
Fariborz Jahanian34374e62009-09-03 23:18:17 +000048// CHECK-LP64: __ZN4ListIP12BinomialNodeIiEED1Ev:
49// CHECK-LP64: __ZN4ListIP12BinomialNodeIiEED2Ev:
Mike Stump1eb44332009-09-09 15:08:12 +000050// CHECK-LP64: __ZN4NodeIP12BinomialNodeIiEEC1Ev:
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000051// CHECK-LP64: __ZN4ListIP12BinomialNodeIiEEC1Ev:
52
Fariborz Jahanian34374e62009-09-03 23:18:17 +000053// CHECK-LP32: __ZN4ListIP12BinomialNodeIiEED1Ev:
54// CHECK-LP32: __ZN4ListIP12BinomialNodeIiEED2Ev:
Fariborz Jahanian9d436202009-09-03 21:32:41 +000055// CHECK-LP32: __ZN4NodeIP12BinomialNodeIiEEC1Ev:
56// CHECK-LP32: __ZN4ListIP12BinomialNodeIiEEC1Ev: