CIL's printing routines try to eliminate some trivial gotos.  However, when a goto is eliminated, the label on the target statement is left behind.  If that trivial goto was the only one that used this label, the compiler will now warn that this label is being defined but not used.
CIL's printing routines try to eliminate some trivial gotos.  However,
when a goto is eliminated, the label on the target statement is left
behind.  If that trivial goto was the only one that used this label,
the compiler will now warn that this label is being defined but not
used.

CIL should not induce new warning diagnostics that were absent in the
original program.

A better way to solve this, in my opinion, would be to create a
distinct in-place transformation visitor that eliminates trivial
gotos, followed by another visitor that eliminates unused labels.  (I
actually have code for unused label removal, if anyone is interested
in it.)  This should all happen before printing; the printing routines
themselves should just dump out whatever they've got and not try to be
clever.

samuelhavron/obliv-c,samuelhavron/obliv-c,samuelhavron/obliv-c,samuelhavron/obliv-c