diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 6b09f7f9fc1e3..8034ce9c3f221 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -1058,7 +1058,9 @@ void CompilerInstance::printDiagnosticStats() { if (!getLangOpts().CUDAIsDevice) { OS << " when compiling for host"; } else { - OS << " when compiling for " << getTargetOpts().CPU; + OS << " when compiling for " + << (!getTargetOpts().CPU.empty() ? getTargetOpts().CPU + : getTarget().getTriple().str()); } } OS << ".\n"; diff --git a/clang/test/SemaCUDA/error-includes-mode.cu b/clang/test/SemaCUDA/error-includes-mode.cu index 257fdeceef654..f775e656b07a1 100644 --- a/clang/test/SemaCUDA/error-includes-mode.cu +++ b/clang/test/SemaCUDA/error-includes-mode.cu @@ -1,7 +1,16 @@ // RUN: not %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck --check-prefix HOST %s // RUN: not %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_35 \ // RUN: -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix SM35 %s +// RUN: not %clang_cc1 -triple spirv64-unknown-unknown \ +// RUN: -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix SPIRV %s +// RUN: not %clang_cc1 -triple spirv64-amd-amdhsa \ +// RUN: -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix AMDGCNSPIRV %s +// RUN: not %clang_cc1 -triple spirv64-intel-unknown \ +// RUN: -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix INTELSPIRV %s // HOST: 1 error generated when compiling for host // SM35: 1 error generated when compiling for sm_35 +// SPIRV: 1 error generated when compiling for spirv64-unknown-unknown +// AMDGCNSPIRV: 1 error generated when compiling for spirv64-amd-amdhsa +// INTELSPIRV: 1 error generated when compiling for spirv64-intel-unknown error;