Internal Error How can I find out what internal error?

I have a 9000 line piece of non ansi C code written by someone else that I have been trying to port to use portions with CUDA. I have fixed all the compiler errors but then right at the tail end it says Internal Error.

Does anyone know what types of things cause internal errors. I have thought about parameters passed to the kernal (I have 40 parameters) and number of threads (I am using 50). The code still has 365 warnings that were given to me when I got the thing.

Any clues?

Thanks

In addition: It compiles just fine for the EmuDebug and EmuRelease but not for Debug or Release

It sounds like you may be running into the hardware limit of 256 bytes that applies to kernel parameter passing.

The hardware can receive at most 64 32-bit parameters per kernel launch.

I have got it down to a single line of code

az=azNEW;

when I comment this line out the internal error goes away. I have tried to use temporary variables, add one and then subtract one, nothing works. Except if I do az = 0;

Note az and azNEW are declared as double.

Is this a compiler bug? How do I report it?

When I do verbose it gives:

1>Internal error
1># --error 0xc0000005 –

UPDATE:

I have tried CUDA 1.1 and it works just fine. I guess they did improve the register allocation.