------- Comment #1 from burnus at gcc dot gnu dot org 2008-01-19 16:03 ------- Confirm. I think it is a fallout of Paul's typespec patch (PR 34429 et alia).
In resolve_branch (which prints the error message), label->defined == ST_LABEL_BAD_TARGET. The problem is probably that ST_GET_FCN_CHARACTERISTICS is not taken care of correctly. check_statement_label has: switch (st) { case ST_END_PROGRAM: [... some more ST_END*] case_executable: case_exec_markers: type = ST_LABEL_TARGET; case ST_FORMAT: type = ST_LABEL_FORMAT; default: type = ST_LABEL_BAD_TARGET; The question is now whether one simply adds the ST_GET_FCN_CHARACTERISTICS to the cases or whether one adds it to, e.g., "#define case_executable" ? -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pault at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |rejects-valid Last reconfirmed|0000-00-00 00:00:00 |2008-01-19 16:03:40 date| | Summary|Spurious error in snapshot |[4.3 Regression] Spurious |of 01/18/08: Statement at |error in snapshot of |(1) is not a valid branch |01/18/08: Statement at (1) |target statement for the |is not a valid branch target |branch statement at (2) |statement for the branch | |statement at (2) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34872