| #include "base.h" | |
| class Foo : public FooBase { | |
| public: | |
| Foo(); | |
| // Deliberately defined by hand. | |
| Foo &operator=(const Foo &rhs) { | |
| x = rhs.x; // break1 | |
| a = rhs.a; | |
| return *this; | |
| } | |
| int a; | |
| }; | |
| namespace ns { | |
| class Foo2 : public Foo2Base { | |
| public: | |
| Foo2(); | |
| // Deliberately defined by hand. | |
| Foo2 &operator=(const Foo2 &rhs) { | |
| x = rhs.x; // break2 | |
| a = rhs.a; | |
| return *this; | |
| } | |
| int a; | |
| }; | |
| } // namespace ns | |
| extern Foo foo1; | |
| extern Foo foo2; | |
| extern ns::Foo2 foo2_1; | |
| extern ns::Foo2 foo2_2; |