MaskRay added a comment.

In D108905#4655694 <https://reviews.llvm.org/D108905#4655694>, @ChuanqiXu wrote:

> Oh, I am not saying the legacy and old comment. I mean you need to touch 
> ReleaseNotes.rst and UserManual.rst since we add a new flag. Also we need 
> either add a TODO/FIXME saying we need to emit an error in Sema if we find 
> the the dtor of the exception we're throwing may throw or implement the 
> semantics actually.

Thanks for the reminder about `ReleaseNotes.rst` and `UsersManual.rst`!

I think many changes don't update `UsersManual.rst` but this option is probably 
quite useful and therefore deserves an entry. Added.
The primary change is to `clang/lib/CodeGen/ItaniumCXXABI.cpp`, which does not 
report warnings.
If we want to implement a warning, we should probably do it in 
clang/lib/Sema/SemaDeclCXX.cpp `Sema::BuildExceptionDeclaration`, which is not 
touched in this file, so a TODO seems not appropriate...

Is the warning to warn about `noexcept(false)` destructor in an 
exception-declaration <https://eel.is/c++draft/except.pre>? When?
If at catch handlers, unfortunately we are cannot determine the exception 
object for a `catch (...) { ... }` (used by coroutines).
Technically, even if a destructor is `noexcept(false)`, the destructor may not 
throw when `__cxa_end_catch` destroys the object.

So we probably should warn about throw expressions, which can be done in 
`Sema::CheckCXXThrowOperand` and I will investigate it.
However, this warning appears orthogonal to `-fassume-nothrow-exception-dtor`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D108905

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to