Compile error: "Signal caught in phase Lowering"

During compilation with nvcc (1.1), I’m getting the following error message:

1>Signal: caught in Lowering phase.
1>(0): Error: Signal caught in phase Lowering – processing aborted
1>nvopencc ERROR: C:\CUDA\bin/…/open64/lib//be.exe returned non-zero status 3

There’s no line number or any other information associated with it.

What does this mean and what could be causing it?

I did a google search and there are was this issue:

http://forums.nvidia.com/index.php?showtop…369&mode=linear

which apparently was a compiler bug, but doesn’t appear to be related to anything going on in my code.

Thanks.

Well, after going through and individually commenting out lines of code, I finally tracked down the problem.

It appears to be a compiler bug.

The line that was causing the problem was this:

long myarray[ARRAY_SIZE] = {startValue};

Which should create an array of ARRAY_SIZE longs with the myarray[0] initialized to startValue.

Now, what’s odd is that if I do this exact same code anywhere else in the same function, it compiles fine, so the compiler can obviously correctly parse it. My guess is that some previous code is putting the compiler in a weird state and then it just breaks here.

I was able to fix it by doing:

long myarray[ARRAY_SIZE];
myarray[0] = startValue;

Anyway, just in case anyone is interested. I’m not sure how reproducible it’s going to be.