tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestOverrideBaseCallAnnotation.cpp (964B)


      1 #define MOZ_REQUIRED_BASE_METHOD __attribute__((annotate("moz_required_base_method")))
      2 
      3 class Base {
      4 public:
      5  virtual void fo() MOZ_REQUIRED_BASE_METHOD {
      6  }
      7 };
      8 
      9 class BaseNonVirtual {
     10 public:
     11  void fo() MOZ_REQUIRED_BASE_METHOD { // expected-error {{MOZ_REQUIRED_BASE_METHOD can be used only on virtual methods}}
     12  }
     13 };
     14 
     15 class Deriv : public BaseNonVirtual {
     16 public:
     17  virtual void fo() MOZ_REQUIRED_BASE_METHOD {
     18  }
     19 };
     20 
     21 class DerivVirtual : public Base {
     22 public:
     23  void fo() MOZ_REQUIRED_BASE_METHOD {
     24    Base::fo();
     25  }
     26 };
     27 
     28 class BaseOperator {
     29 public:
     30  BaseOperator& operator++() MOZ_REQUIRED_BASE_METHOD { // expected-error {{MOZ_REQUIRED_BASE_METHOD can be used only on virtual methods}}
     31    return *this;
     32  }
     33 };
     34 
     35 class DerivOperator : public BaseOperator {
     36 public:
     37  virtual DerivOperator& operator++() {
     38    return *this;
     39  }
     40 };
     41 
     42 class DerivPrimeOperator : public DerivOperator {
     43 public:
     44  DerivPrimeOperator& operator++() {
     45    return *this;
     46  }
     47 };