Extended Block Optimizer Error?

2>Signal: caught in Extended Block Optimizer - vectors phase.
2>Error: Signal caught in phase Extended Block Optimizer - vectors – processing aborted
2>nvopencc ERROR: C:\CUDA\bin/…/open64/lib//be.exe returned non-zero status 3

I am getting this error when compiling. I don’t have an exact line that causes it, but this first happened when I started introducing structs into my .cu files. Any clue?

Can you provide a .cu file and the compile command you use that cause this error?

Unfortunately I cannot - this code is proprietary. I’ve been working with some folks at NVIDIA to get a secure private intranet set up for my company where I could submit secure code samples, but it has been a pretty slow process.

I can give you a command line

$(CUDA_BIN_PATH)\nvcc.exe -DNDEBUG --keep -v -cuda -use_fast_math -O3   -o generated_output_file.c my_cuda_file.cu

The gist of my problem was when I allocated an array of structs (simple 2-int structs, at that). Referencing this array through a macro caused the error. The macro simply locates the correct element, something to the effect of:

struct whatever {

   int x;

   int y;

}

// ie the macro helps locate the correct array element in some array

#define some_macro(array,i,j,k) (array)[((i)*2)+(j)*(k))] 

struct whatever my_struct_array[10];

some_macro(some_int_array,1,2,my_struct_array[threadIdx.x].y) = 10; // causes compiler error

If you can provide a simple example that reproduces the problem, we can make sure the bug gets fixed if it is not already.

Thanks,
Mark