hokein wrote: It does filter out the `missing-dependent-template-keyword` warnings, but doesn't fix the absl case.
With https://github.com/llvm/llvm-project/commit/ce4aada6e2135e29839f672a6599db628b53295d, there is a behavior change in clang. Clang reject the following code which was accepted before by emitting a hard error `err_no_member`. ``` #define TYPE_OR_NONTYPE int template<TYPE_OR_NONTYPE T> struct BaseT { void Foo(); // expected-note{{found by ambiguous name lookup}} }; template<TYPE_OR_NONTYPE T> struct DerivedT : BaseT<T> { void Inner(); }; template<TYPE_OR_NONTYPE T> void DerivedT<T>::Inner() { this->BaseT<T>::Foo(); } ``` - If the `TYPE_OR_NONTYPE` is `typename` (type template parameter case), clang emits a `missing-dependent-template-keyword` warning, which can be suppressed; - If the `TYPE_OR_NONTYPE` is `int` (non-type template parameter case), clang emits a hard error `err_no_member`; https://github.com/llvm/llvm-project/pull/98613 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits