When I saw "union switch has unreachable default" I was very impressed: quite cool to check! Unfortunately, I saw it in a context like typedef enum { V1, V2 } e; e v; union switch(v) { case V1: /* handle V1 */ break; case V2: /* handle V2 */ break; default: abort("somebody expanded the union datatype: fix me"); } As cool as it is, I'm afraid it has to go... Bart