isuckatcs added inline comments.
================ Comment at: clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp:306 + + if (From->isMemberPointerType() || To->isMemberPointerType()) return false; ---------------- PiotrZSL wrote: > isuckatcs wrote: > > isuckatcs wrote: > > > Please cover this line with both positive and negative test cases. > > > > > > Also upon looking up both [[ > > > https://www.open-std.org/jtc1/sc22/wg21/docs/standards | N4849 ]] (C++ 20 > > > draft) and [[ https://github.com/cplusplus/draft/releases | N4917]] (C++ > > > 23 draft), they both say for qualification conversion that > > > > > > > > > > each P_i is ... pointer to member of class C_i of type, ... > > > > > > Why are we not allowing them if the standard is at least C++ 20? > > Please resolve this thread. > Positive case is tested by throw_basefn_catch_derivedfn test and > throw_derivedfn_catch_basefn. > Negative is covered by throw_basefn_catch_basefn. > > For members there are tests throw_basem_catch_basem, > throw_basem_catch_derivedm, throw_derivedm_catch_basem that also covers this > correctly. > > Tested this with GCC, and behavior is proper and independent to C++ standard. > Tested this with GCC, and behavior is proper and independent to C++ standard. I don't know how to deal with this tbh. In a static analyzer we usually want to consider what the standard says and not what a specific compiler implementation does, as the compiler can still be buggy, lack the proper support for the standard, etc. Maybe we can add a FIXME here that explains, why this check is here and that it's the opposite of what the standard says. Then later if it causes issues, it will be easy to see why that happens. @xazax.hun do you have a prefered method to deal with these situations in the analyzer? If there is one, we could also try it here. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148461/new/ https://reviews.llvm.org/D148461 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits