Index: cfe/trunk/lib/Driver/Driver.cpp =================================================================== --- cfe/trunk/lib/Driver/Driver.cpp +++ cfe/trunk/lib/Driver/Driver.cpp @@ -174,10 +174,8 @@ } else if ((PhaseArg = DAL.getLastArg(options::OPT_S))) { FinalPhase = phases::Backend; - // -c and partial CUDA compilations only run up to the assembler. - } else if ((PhaseArg = DAL.getLastArg(options::OPT_c)) || - (PhaseArg = DAL.getLastArg(options::OPT_cuda_device_only)) || - (PhaseArg = DAL.getLastArg(options::OPT_cuda_host_only))) { + // -c compilation only runs up to the assembler. + } else if ((PhaseArg = DAL.getLastArg(options::OPT_c))) { FinalPhase = phases::Assemble; // Otherwise do everything. Index: cfe/trunk/test/Driver/cuda-options.cu =================================================================== --- cfe/trunk/test/Driver/cuda-options.cu +++ cfe/trunk/test/Driver/cuda-options.cu @@ -27,8 +27,8 @@ // RUN: | FileCheck -check-prefix CUDA-ND \ // Then compile host side and make sure we don't attempt to incorporate GPU code. // RUN: -check-prefix CUDA-H -check-prefix CUDA-H-NI \ -// Make sure we don't link anything. -// RUN: -check-prefix CUDA-NL %s +// Linking is allowed to happen, even if we're missing GPU code. +// RUN: -check-prefix CUDA-L %s // Verify that -cuda-no-host disables host-side compilation and linking // RUN: %clang -### -target x86_64-linux-gnu --cuda-device-only %s 2>&1 \