Index: clang/lib/Frontend/CompilerInstance.cpp =================================================================== --- clang/lib/Frontend/CompilerInstance.cpp +++ clang/lib/Frontend/CompilerInstance.cpp @@ -1003,8 +1003,17 @@ OS << " and "; if (NumErrors) OS << NumErrors << " error" << (NumErrors == 1 ? "" : "s"); - if (NumWarnings || NumErrors) - OS << " generated.\n"; + if (NumWarnings || NumErrors) { + OS << " generated"; + if (getLangOpts().CUDA) { + if (!getLangOpts().CUDAIsDevice) { + OS << " when compiling for host"; + } else { + OS << " when compiling for " << getTargetOpts().CPU; + } + } + OS << ".\n"; + } } if (getFrontendOpts().ShowStats) { Index: clang/test/SemaCUDA/error-includes-mode.cu =================================================================== --- /dev/null +++ clang/test/SemaCUDA/error-includes-mode.cu @@ -0,0 +1,7 @@ +// 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 + +// HOST: 1 error generated when compiling for host +// SM35: 1 error generated when compiling for sm_35 +error;