aaron.ballman added inline comments.

================
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.
----------------
hintonda wrote:
> alexfh wrote:
> > alexfh wrote:
> > > This description doesn't say why `noexcept` is better.
> > This still needs to be addressed.
> Absolutely, but I'll probably do all the code changes first while it's still 
> fresh in my mind. 
Since we're talking about documentation, should we note that this check does 
produce a subtle, obscure change in behavior? When you have `throw()` on a 
function signature and that function winds up throwing something, this would 
result in `std::unexpected()` being called. When that gets modified to be 
`noexcept`, the call to `std::unexpected()` is replaced by a call to 
`std::terminate()`. This hopefully does not break any code, but we may want to 
document the fact that failing to honor a dynamic exception specification is 
slightly different than failing to honor an exception specification so that 
users are aware of the slightly different semantics.


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