Mirror of roytam1's UXP fork just in case Moonchild and Tobin decide to go after him
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

47 lines
964 B

#define MOZ_REQUIRED_BASE_METHOD __attribute__((annotate("moz_required_base_method")))
class Base {
public:
virtual void fo() MOZ_REQUIRED_BASE_METHOD {
}
};
class BaseNonVirtual {
public:
void fo() MOZ_REQUIRED_BASE_METHOD { // expected-error {{MOZ_REQUIRED_BASE_METHOD can be used only on virtual methods}}
}
};
class Deriv : public BaseNonVirtual {
public:
virtual void fo() MOZ_REQUIRED_BASE_METHOD {
}
};
class DerivVirtual : public Base {
public:
void fo() MOZ_REQUIRED_BASE_METHOD {
Base::fo();
}
};
class BaseOperator {
public:
BaseOperator& operator++() MOZ_REQUIRED_BASE_METHOD { // expected-error {{MOZ_REQUIRED_BASE_METHOD can be used only on virtual methods}}
return *this;
}
};
class DerivOperator : public BaseOperator {
public:
virtual DerivOperator& operator++() {
return *this;
}
};
class DerivPrimeOperator : public DerivOperator {
public:
DerivPrimeOperator& operator++() {
return *this;
}
};