10ccb31c389a09216a5b60cf05bd01516ddbe8d4fGalina Kistanova// REQUIRES: x86-registered-target,x86-64-registered-target 2762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -S %s -o %t-64.s 34fcfde4d5c8f25e40720972a5543d538a0dcb220Daniel Dunbar// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s 4762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -S %s -o %t-32.s 54fcfde4d5c8f25e40720972a5543d538a0dcb220Daniel Dunbar// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s 672f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor 772f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor// PR4826 872f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregorstruct A { 972f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor A() { 1072f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor } 1172f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor}; 1272f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor 1372f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregortemplate<typename T> 1472f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregorstruct B { 1572f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor B(T) {} 1672f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor 1772f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor A nodes; 1872f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor}; 1972f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor 20cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian 21cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian// PR4853 22cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahaniantemplate <typename T> class List { 23cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanianpublic: 241eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump List(){ } // List<BinomialNode<int>*>::List() remains undefined. 2534374e6ce5710a91c478f69379220ff20c3e7f15Fariborz Jahanian ~List() {} 26cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian}; 27cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian 289d436205be3e4c05854530134be61b46b13136ffFariborz Jahaniantemplate <typename T> class Node { 299d436205be3e4c05854530134be61b46b13136ffFariborz Jahanian int i; 309d436205be3e4c05854530134be61b46b13136ffFariborz Jahanianpublic: 319d436205be3e4c05854530134be61b46b13136ffFariborz Jahanian Node(){ } // Node<BinomialNode<int>*>::Node() remains undefined. 3234374e6ce5710a91c478f69379220ff20c3e7f15Fariborz Jahanian ~Node() {} 339d436205be3e4c05854530134be61b46b13136ffFariborz Jahanian}; 349d436205be3e4c05854530134be61b46b13136ffFariborz Jahanian 359d436205be3e4c05854530134be61b46b13136ffFariborz Jahanian 369d436205be3e4c05854530134be61b46b13136ffFariborz Jahaniantemplate<typename T> class BinomialNode : Node<BinomialNode<T>*> { 37cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanianpublic: 38cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian BinomialNode(T value) {} 39cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian List<BinomialNode<T>*> nodes; 40cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian}; 41cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian 4272f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregorint main() { 4372f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor B<int> *n = new B<int>(4); 44cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian BinomialNode<int> *node = new BinomialNode<int>(1); 4534374e6ce5710a91c478f69379220ff20c3e7f15Fariborz Jahanian delete node; 4672f6d678c8de9f3a770e8ae5fc4979abf3940668Douglas Gregor} 47cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian 48c997d4278d329e18891aac9698fb991b2d4622ebAnders Carlsson// CHECK-LP64: __ZN4NodeIP12BinomialNodeIiEEC2Ev: 49cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian// CHECK-LP64: __ZN4ListIP12BinomialNodeIiEEC1Ev: 5034531470e6f6e394de7fd47d69917db280fee206Eli Friedman// CHECK-LP64: __ZN4ListIP12BinomialNodeIiEED1Ev: 51cf1b9c790ad9c944131e7150ef13e2d421f79e88Fariborz Jahanian 52c997d4278d329e18891aac9698fb991b2d4622ebAnders Carlsson// CHECK-LP32: __ZN4NodeIP12BinomialNodeIiEEC2Ev: 539d436205be3e4c05854530134be61b46b13136ffFariborz Jahanian// CHECK-LP32: __ZN4ListIP12BinomialNodeIiEEC1Ev: 5434531470e6f6e394de7fd47d69917db280fee206Eli Friedman// CHECK-LP32: __ZN4ListIP12BinomialNodeIiEED1Ev: 55