1 #define MOZ_REQUIRED_BASE_METHOD __attribute__((annotate("moz_required_base_method")))
5 virtual void fo() MOZ_REQUIRED_BASE_METHOD
{
8 virtual int foRet() MOZ_REQUIRED_BASE_METHOD
{
13 class BaseOne
: public Base
{
15 virtual void fo() MOZ_REQUIRED_BASE_METHOD
{
20 class BaseSecond
: public Base
{
22 virtual void fo() MOZ_REQUIRED_BASE_METHOD
{
27 class Deriv
: public BaseOne
, public BaseSecond
{
39 class DerivSimple
: public Base
{
41 void fo() { // expected-error {{Method Base::fo must be called in all overrides, but is not called in this override defined for class DerivSimple}}
45 class BaseVirtualOne
: public virtual Base
{
48 class BaseVirtualSecond
: public virtual Base
{
51 class DerivVirtual
: public BaseVirtualOne
, public BaseVirtualSecond
{
58 class DerivIf
: public Base
{
67 class DerivIfElse
: public Base
{
78 class DerivFor
: public Base
{
81 for (int i
= 0; i
< 10; i
++) {
87 class DerivDoWhile
: public Base
{
96 class DerivWhile
: public Base
{
106 class DerivAssignment
: public Base
{
117 BaseOperator() : value(0) {
119 virtual BaseOperator
& operator++() MOZ_REQUIRED_BASE_METHOD
{
125 class DerivOperatorErr
: public BaseOperator
{
129 DerivOperatorErr() : value(0) {
131 DerivOperatorErr
& operator++() { // expected-error {{Method BaseOperator::operator++ must be called in all overrides, but is not called in this override defined for class DerivOperatorErr}}
137 class DerivOperator
: public BaseOperator
{
141 DerivOperator() : value(0) {
143 DerivOperator
& operator++() {
144 BaseOperator::operator++();
150 class DerivPrime
: public Base
{
157 class DerivSecondErr
: public DerivPrime
{
159 void fo() { // expected-error {{Method Base::fo must be called in all overrides, but is not called in this override defined for class DerivSecondErr}}
163 class DerivSecond
: public DerivPrime
{
170 class DerivSecondIndirect
: public DerivPrime
{