Cuda programs may produce different errors depending on the architecture of the
target hardware. The canonical example and reason for writing this patch, is the
lack of support for double precision numbers on older hardware. By default, nvcc
and thus syntastic, defaults to the most basic architecture. This can produce
false errors if the developer intends to compile for newer hardware and use
newer features.
Not defining g:syntastic_cuda_arch preserves this behavior. Otherwise the user
is expected to set it a valid arch flag, as listed by `nvcc --help`.
Example:
let g:syntastic_cuda_arch = "sm_20"
Remove the g:syntastic_nvcc_binary option as this should be in the users
path - or at least symlinked in. Also, the logic was broken in that the
script was hardcoded to only accept '/usr/local/cuda/bin/nvcc' as the
binary anyway.