These patches drop gotos that jump to a label that is at the next instruction, in the case that the label is not used elsewhere in the function. The complete semantic patch that performs this transformation is as follows: // <smpl> @r@ position p; identifier l; @@ if (...) goto l@p; l: @script:ocaml s@ p << r.p; nm; @@ nm := (List.hd p).current_element @ok exists@ identifier s.nm,l; position p != r.p; @@ nm(...) { <+... goto l@p; ...+> } @depends on !ok@ identifier s.nm; position r.p; identifier l; @@ nm(...) { <... - if(...) goto l@p; l: ...> } // </smpl> _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel