blob: 5fc6c2dfabb1e5832627c223148e942f8536afa4 [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:
24 List(){ } // List<BinomialNode<int>*>::List() remains undefined.
25};
26
Fariborz Jahanian9d436202009-09-03 21:32:41 +000027template <typename T> class Node {
28 int i;
29public:
30 Node(){ } // Node<BinomialNode<int>*>::Node() remains undefined.
31};
32
33
34template<typename T> class BinomialNode : Node<BinomialNode<T>*> {
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000035public:
36 BinomialNode(T value) {}
37 List<BinomialNode<T>*> nodes;
38};
39
Douglas Gregor72f6d672009-09-01 21:04:42 +000040int main() {
41 B<int> *n = new B<int>(4);
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000042 BinomialNode<int> *node = new BinomialNode<int>(1);
Douglas Gregor72f6d672009-09-01 21:04:42 +000043}
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000044
Fariborz Jahanian9d436202009-09-03 21:32:41 +000045// CHECK-LP64: __ZN4NodeIP12BinomialNodeIiEEC1Ev:
Fariborz Jahaniancf1b9c72009-09-02 23:02:57 +000046// CHECK-LP64: __ZN4ListIP12BinomialNodeIiEEC1Ev:
47
Fariborz Jahanian9d436202009-09-03 21:32:41 +000048// CHECK-LP32: __ZN4NodeIP12BinomialNodeIiEEC1Ev:
49// CHECK-LP32: __ZN4ListIP12BinomialNodeIiEEC1Ev: