// RUN: %check_clang_tidy %s bugprone-reserved-identifier %t -- \ // RUN: -config='{CheckOptions: [ \ // RUN: {key: bugprone-reserved-identifier.Invert, value: 1}, \ // RUN: {key: bugprone-reserved-identifier.AllowedIdentifiers, value: std;reference_wrapper;ref;cref;type;get}, \ // RUN: ]}' -- \ // RUN: -I%S/Inputs/bugprone-reserved-identifier \ // RUN: -isystem %S/Inputs/bugprone-reserved-identifier/system namespace std { void __f() {} void f(); // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: declaration uses identifier 'f', which is not a reserved identifier [bugprone-reserved-identifier] // CHECK-FIXES: {{^}}void __f();{{$}} struct helper {}; // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: declaration uses identifier 'helper', which is not a reserved identifier [bugprone-reserved-identifier] // CHECK-FIXES: {{^}}struct __helper {};{{$}} struct Helper {}; // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: declaration uses identifier 'Helper', which is not a reserved identifier [bugprone-reserved-identifier] // CHECK-FIXES: {{^}}struct _Helper {};{{$}} struct _helper2 {}; // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: declaration uses identifier '_helper2', which is not a reserved identifier [bugprone-reserved-identifier] // CHECK-FIXES: {{^}}struct __helper2 {};{{$}} template class reference_wrapper { public: typedef _Tp type; private: type *__f_; public: reference_wrapper(type &__f) : __f_(&__f) {} // access operator type &() const { return *__f_; } type &get() const { return *__f_; } }; template inline reference_wrapper<_Tp> ref(_Tp &__t) noexcept { return reference_wrapper<_Tp>(__t); } template inline reference_wrapper<_Tp> ref(reference_wrapper<_Tp> __t) noexcept { return ref(__t.get()); } template // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: declaration uses identifier 'Up', which is not a reserved identifier [bugprone-reserved-identifier] // CHECK-FIXES: {{^}}template {{$}} inline reference_wrapper cref(const Up &u) noexcept { // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: declaration uses identifier 'u', which is not a reserved identifier [bugprone-reserved-identifier] // CHECK-FIXES: {{^}}cref(const _Up &__u) noexcept {{{$}} return reference_wrapper(u); } template inline reference_wrapper<_Tp> cref(reference_wrapper __t) noexcept { return cref(__t.get()); } } // namespace std