The IRQ_SLOTS_COUNT was ONLY needed because of very early bug in gcc 3.
The bug was with things like this:
struct blah { int x; };
struct bee { struct blah[0]; };
The idea here is you can initialize the bee struct and the number of blah structs depends on the initializer, not the declaration.
In the early days of v3 gcc would not handle the initialization correctly at all. Really, IRQ_SLOTS_COUNT should be something we can get along without. (at least that's what memory tells me).
Note that on gcc2 it had to be 1, that was the convention; then it became 0 later.
ron