alexfh requested changes to this revision. alexfh added inline comments. This revision now requires changes to proceed.
================ Comment at: clang-tidy/modernize/UseNoexceptCheck.cpp:100 + StringRef ReplacementStr = + IsNoThrow ? NoexceptMacro.empty() ? "noexcept" : NoexceptMacro + : DtorOrOperatorDel ? "noexcept(false)" : ""; ---------------- Did you consider auto-detection approach like in `getFallthroughAttrSpelling` in tools/clang/lib/Sema/AnalysisBasedWarnings.cpp? ================ Comment at: clang-tidy/modernize/UseNoexceptCheck.cpp:105 + if (IsNoThrow || NoexceptMacro.empty()) + FixIt = FixItHint::CreateReplacement(CharSourceRange(Range, true), + ReplacementStr); ---------------- I suspect this won't work when the range is not contiguous, e.g. starts in a macro definition and ends outside of it: #define T throw void f() T(a, b) {} Can you try this test (or construct something similar that will actually break this code)? In case it doesn't work, `Lexer::makeFileCharRange` is the standard way to get a contiguous file range corresponding to a source range (if possible). ================ Comment at: docs/clang-tidy/checks/modernize-use-noexcept.rst:6-8 +The check converts dynamic exception specifications, e.g., +``throw()``, ``throw(<exception>[,...])``, or ``throw(...)``, to +``noexcept``, ``noexcept(false)``, blank, or a user defined macro. ---------------- This description doesn't say why `noexcept` is better. https://reviews.llvm.org/D20693 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits