I am getting an internal error with the CUDA compiler (Version 10.0) using simple code with Visual Studio 2017.
I only have to derived from stdext::checked_array_iterator (Microsoft extension) in order to reproduce the issue.
Here is the code:
#include <iterator>
template <class T>
struct checked_array_iterator : public stdext::checked_array_iterator<T>
{
};
Save this file as Source.cu and compile it with the following command line.
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin\nvcc.exe" -gencode=arch=compute_35,code=\"sm_35,compute_35\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio017\Professional\VC\Tools\MSVC4.15.26726\bin\HostX86\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Fdx64\Debug\vc141.pdb /FS /Zi /RTC1 /MDd " -o x64\Debug\Source.cu.obj "D:\Projects\BugVisualStudio\CUDA_10_CompilingAssert\Source.cu"
You then get the following error message:
Source.cu
Internal error: assertion failed at: "C:/dvs/p4/build/sw/rel/gpu_drv/r400/r400_00/drivers/compiler/edg/EDG_4.14/src/decl_spec.c", line 9596
1 catastrophic error detected in the compilation of "C:/Users/foobar/AppData/Local/Temp/tmpxft_00004134_00000000-5_Source.cpp4.ii".
Compilation aborted.
nvcc error : 'cudafe++' died with status 0xC0000409