Error C2622 only in Emu mode (related to unions)

I have a struct declared that contains a union. When I compile CUDA normally, everything works, however when building in EMU mode, I get error C2622 which is:

member '__cuda_emu:: … ’ of union '__cuda_emu:: … ’ has assignment operator

(the ‘…’ is the mangled name of the the variables).

I suspect that the EMU build is doing a C++ build (which would automatically create assignment operators for the union-ed structs while the regular build is a C one, but am not sure. I have my versions and the command strings I use below. I can’t quite figure out how to fix this though, anyone can help? THANKS!

My versions:

CUDA 2.3
Vista 64
Visual Studio 2005

Build Commands:

Normal build:

(CUDA_BIN_PATH)\nvcc.exe" -Xptxas –v -ccbin "(VCInstallDir)bin” -c -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/O2,/Zi,/MT -I"(CUDA_INC_PATH)" -I./ -I./CUDAcommon/inc -use_fast_math -o (ConfigurationName)$(InputName).obj $(InputFileName)

EMU build:

(CUDA_BIN_PATH)\nvcc.exe" -ccbin "(VCInstallDir)bin” -deviceemu -c -D_CONSOLE -D_MBCS -Xcompiler “/EHsc,/W3,/nologo,/O2,/Zi,/MTd” -I"(CUDA_INC_PATH)" -I./ -I./CUDAcommon/inc -use_fast_math -o (

OK additional information. When I do the same thing on WinXP the EMU build works. The differences as far as I can tell are:

  1. WinXP vs Vista
  2. erroneous build was for x64, XP build is for win32
  3. settings that are different that I don’t realize???