Once and for all: remove the default and move the Sys_Error outside the switch (changing appropriate breaks to returns). Now gcc will let me know when I forget to update the switch statements.