76 lines
2.5 KiB
C++
76 lines
2.5 KiB
C++
// RUN: %check_clang_tidy -check-suffixes=DTORS,WIDENING,NARROWING %s misc-override-with-different-visibility %t -- \
|
|
// RUN: -config="{CheckOptions: {misc-override-with-different-visibility.CheckDestructors: true}}"
|
|
|
|
// RUN: %check_clang_tidy -check-suffixes=OPS,WIDENING,NARROWING %s misc-override-with-different-visibility %t -- \
|
|
// RUN: -config="{CheckOptions: {misc-override-with-different-visibility.CheckOperators: true}}"
|
|
|
|
// RUN: %check_clang_tidy -check-suffixes=WIDENING %s misc-override-with-different-visibility %t -- \
|
|
// RUN: -config="{CheckOptions: {misc-override-with-different-visibility.DisallowedVisibilityChange: 'widening'}}"
|
|
|
|
// RUN: %check_clang_tidy -check-suffixes=NARROWING %s misc-override-with-different-visibility %t -- \
|
|
// RUN: -config="{CheckOptions: {misc-override-with-different-visibility.DisallowedVisibilityChange: 'narrowing'}}"
|
|
|
|
namespace test_change {
|
|
|
|
class A {
|
|
protected:
|
|
virtual void f1();
|
|
virtual void f2();
|
|
};
|
|
|
|
class B: public A {
|
|
public:
|
|
void f1();
|
|
// CHECK-MESSAGES-WIDENING: :[[@LINE-1]]:8: warning: visibility of function 'f1'
|
|
// CHECK-MESSAGES-WIDENING: :[[@LINE-8]]:16: note: function declared here
|
|
private:
|
|
void f2();
|
|
// CHECK-MESSAGES-NARROWING: :[[@LINE-1]]:8: warning: visibility of function 'f2'
|
|
// CHECK-MESSAGES-NARROWING: :[[@LINE-11]]:16: note: function declared here
|
|
};
|
|
|
|
}
|
|
|
|
namespace test_destructor {
|
|
|
|
class A {
|
|
public:
|
|
virtual ~A();
|
|
};
|
|
|
|
class B: public A {
|
|
protected:
|
|
~B();
|
|
// CHECK-MESSAGES-DTORS: :[[@LINE-1]]:3: warning: visibility of function '~B'
|
|
// CHECK-MESSAGES-DTORS: :[[@LINE-7]]:11: note: function declared here
|
|
};
|
|
|
|
}
|
|
|
|
namespace test_operator {
|
|
|
|
class A {
|
|
virtual A& operator=(const A&);
|
|
virtual A& operator++();
|
|
virtual int operator()(int);
|
|
virtual operator double() const;
|
|
};
|
|
|
|
class B: public A {
|
|
protected:
|
|
A& operator=(const A&);
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-1]]:6: warning: visibility of function 'operator='
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-10]]:14: note: function declared here
|
|
A& operator++();
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-1]]:6: warning: visibility of function 'operator++'
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-12]]:14: note: function declared here
|
|
int operator()(int);
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-1]]:7: warning: visibility of function 'operator()'
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-14]]:15: note: function declared here
|
|
operator double() const;
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-1]]:3: warning: visibility of function 'operator double'
|
|
// CHECK-MESSAGES-OPS: :[[@LINE-16]]:11: note: function declared here
|
|
};
|
|
|
|
}
|