[PATCH] D148697: [clang-tidy] Handle more cases of functions which should always be noexcept

Carlos Galvez via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 19 08:16:32 PDT 2023


carlosgalvezp added a comment.

First of all thank you for the contribution! I had just a quick look so here's some very preliminary comments, will have more time to deeply review during the weekend:

- Unfortunately we cannot simply rename a check like this, since it breaks backwards compatibility. We need a period of 2 major releases where both the new check and the old check (marked as deprecated) co-exist, so people have enough time to port over. Only after those 2 releases can the old check be fully removed.
- Contrary to my comment on Github, I no longer think this should be a cppcoreguideline check, as it does **not** implement rule F.6. The enforcement required is to flag **all** functions (not just the special ones) that cannot throw and mark them as noexcept. That's a huge difference with a larger scope and impact in a codebase. I personally think that last bit is impractical in a real-world project, it would add too much noise.
- This check is also used as an alias to another guideline - HiCPP Rule 12.5.4, which strictly only covers move operators. Guideline checks  (HiCPP, CppCoreGuidelines) are stricter than the regular checks, and should only cover what they intend to cover - no more, no less.
- Special member functions are also copy constructors & assignments, yet those don't seem to be part of the rule?




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148697/new/

https://reviews.llvm.org/D148697



More information about the cfe-commits mailing list