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

Reply via email to