1
0
Fork 0
firefox/build/clang-plugin/tests/TestOverrideBaseCallAnnotation.cpp
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

47 lines
964 B
C++

#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;
}
};