================ @@ -2092,18 +2092,36 @@ Sema::SemaDiagnosticBuilder::~SemaDiagnosticBuilder() { } Sema::SemaDiagnosticBuilder -Sema::targetDiag(SourceLocation Loc, unsigned DiagID, const FunctionDecl *FD) { +Sema::targetDiag(SourceLocation Loc, unsigned DiagID, FunctionDecl *FD) { FD = FD ? FD : getCurFunctionDecl(); - if (LangOpts.OpenMP) - return LangOpts.OpenMPIsTargetDevice - ? OpenMP().diagIfOpenMPDeviceCode(Loc, DiagID, FD) - : OpenMP().diagIfOpenMPHostCode(Loc, DiagID, FD); - if (getLangOpts().CUDA) - return getLangOpts().CUDAIsDevice ? CUDA().DiagIfDeviceCode(Loc, DiagID) - : CUDA().DiagIfHostCode(Loc, DiagID); - - if (getLangOpts().SYCLIsDevice) + + if (LangOpts.OpenMP) { + if (LangOpts.OpenMPIsTargetDevice) { + return OpenMP().diagIfOpenMPDeviceCode(Loc, DiagID, FD); + } + + SemaDiagnosticBuilder SDB = OpenMP().diagIfOpenMPHostCode(Loc, DiagID, FD); + if (SDB.isDeferred()) { + FD->setInvalidDecl(); + } + return SDB; + } + + if (getLangOpts().CUDA) { + if (getLangOpts().CUDAIsDevice) { + return CUDA().DiagIfDeviceCode(Loc, DiagID); + } + + SemaDiagnosticBuilder SDB = CUDA().DiagIfHostCode(Loc, DiagID); + if (SDB.isDeferred()) { + FD->setInvalidDecl(); + } + return SDB; + } + + if (getLangOpts().SYCLIsDevice) { return SYCL().DiagIfDeviceCode(Loc, DiagID); + } ---------------- a-tarasyuk wrote:
@alexey-bataev removed. thanks https://github.com/llvm/llvm-project/pull/147163 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits