summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang
diff options
context:
space:
mode:
authorArtem Belevich <tra@google.com>2015-07-13 23:27:56 +0000
committerArtem Belevich <tra@google.com>2015-07-13 23:27:56 +0000
commit0ff05cd1651474678e8f503cae4956f0c342bf67 (patch)
tree98c608f18a4fd854516da066943e603c71280988 /clang/tools/libclang
parent2eacca86ef2c255bae8eff43056dfa6c57ae7092 (diff)
downloadbcm5719-llvm-0ff05cd1651474678e8f503cae4956f0c342bf67.tar.gz
bcm5719-llvm-0ff05cd1651474678e8f503cae4956f0c342bf67.zip
[cuda] Driver changes to compile and stitch together host and device-side CUDA code.
NOTE: reverts r242077 to reinstate r242058, r242065, 242067 and includes fix for OS X test failures. - Changed driver pipeline to compile host and device side of CUDA files and incorporate results of device-side compilation into host object file. - Added a test for cuda pipeline creation in clang driver. New clang options: --cuda-host-only - Do host-side compilation only. --cuda-device-only - Do device-side compilation only. --cuda-gpu-arch=<ARCH> - specify GPU architecture for device-side compilation. E.g. sm_35, sm_30. Default is sm_20. May be used more than once in which case one device-compilation will be done per unique specified GPU architecture. Differential Revision: http://reviews.llvm.org/D9509 llvm-svn: 242085
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r--clang/tools/libclang/CIndex.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 49b9da23865..6e48bab9f50 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -3102,6 +3102,12 @@ static void clang_parseTranslationUnit_Impl(void *UserData) {
/*AllowPCHWithCompilerErrors=*/true, SkipFunctionBodies,
/*UserFilesAreVolatile=*/true, ForSerialization, &ErrUnit));
+ // Early failures in LoadFromCommandLine may return with ErrUnit unset.
+ if (!Unit && !ErrUnit) {
+ PTUI->result = CXError_ASTReadError;
+ return;
+ }
+
if (NumErrors != Diags->getClient()->getNumErrors()) {
// Make sure to check that 'Unit' is non-NULL.
if (CXXIdx->getDisplayDiagnostics())
OpenPOWER on IntegriCloud