blob: f6181dc7c72c12e6c7b17da660ec3db13438c6f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// { dg-do assemble }
// { dg-options "-O" }
// Bug: Synthesizing methods for the nested class screwed up current_class_decl
// for the outer class.
class A;
class AH
{
public:
AH ( A * p = 0 );
AH ( const AH & from )
: pointer( from.pointer ) { inc(); }
~ AH () { dec(); }
private:
A * pointer;
void inc() const;
void dec() const;
};
class A
{
protected:
struct AttrTable
{
struct Row
{
};
};
public:
class Attributes
{
public:
class iterator
{
public:
iterator() : mo(0), attr(0) {}
iterator& operator++() { ++attr; return *this; }
iterator operator++(int)
{ iterator tmp = *this; ++*this; return tmp; }
private:
AH mo;
const AttrTable::Row* attr;
};
Attributes(AH mo)
: mo(mo) {}
AH mo;
};
};
|