[clang] [clang][Sema] Diagnose exceptions only in non-dependent context in discarded `try/catch/throw` blocks (PR #139859)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Tue May 27 07:56:41 PDT 2025
================
@@ -853,10 +853,9 @@ ExprResult Sema::BuildCXXThrow(SourceLocation OpLoc, Expr *Ex,
getLangOpts().OpenMPIsTargetDevice && (T.isNVPTX() || T.isAMDGCN());
// Don't report an error if 'throw' is used in system headers or in an OpenMP
// target region compiled for a GPU architecture.
- if (!IsOpenMPGPUTarget && !getLangOpts().CXXExceptions &&
- !getSourceManager().isInSystemHeader(OpLoc) && !getLangOpts().CUDA) {
+ if (!IsOpenMPGPUTarget && !getLangOpts().CUDA) {
// Delay error emission for the OpenMP device code.
- targetDiag(OpLoc, diag::err_exceptions_disabled) << "throw";
+ DiagnoseExceptionUse(OpLoc, /* IsTry */ false);
----------------
erichkeane wrote:
```suggestion
DiagnoseExceptionUse(OpLoc, /* IsTry= */ false);
```
https://github.com/llvm/llvm-project/pull/139859
More information about the cfe-commits
mailing list