------- Comment #6 from pinskia at gcc dot gnu dot org 2007-05-23 03:18 ------- Ok, what is going on here has to deal with how select/case works for strings. What the front-end produces confuses the crazy out of the middle-end and the middle-end does not know where the jumps can go so it assumes it can go to either place. After the first select, the middle thinks it can reach where the second select is supposed to reach. So what should happen here is the front-end respentation of select/case for strings need to be improved.
Maybe instead of using labels, it can use a constant value and then a normal switch statement. This will also improve code gen and less confuse the middle-end. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32035