summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/nest15.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/nest15.C37
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C
new file mode 100644
index 000000000..5d3a0b476
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C
@@ -0,0 +1,37 @@
+// { dg-do assemble }
+// GROUPS passed nested-classes
+class BDDHeap {
+public:
+ BDDHeap();
+ BDDHeap(const BDDHeap&);
+
+ class Page {
+ public:
+ int i;
+ };
+ struct Pointer {
+ Page *page;
+ unsigned index;
+
+ Pointer();
+ Pointer(const BDDHeap& heap);
+ };
+
+ struct Half {
+ struct {
+ Page *top;
+ Page **tail;
+ } inuse;
+
+ Half();
+ };
+
+ Half half[2];
+ unsigned halfspace;
+};
+
+inline
+BDDHeap::Pointer::Pointer(const BDDHeap& heap):
+page(heap.half[heap.halfspace].inuse.top),
+index(0)
+{ }