The meaning of the volatile
qualifier is specified in C 2011 (N1570) 5.1.2.3 6: “Accesses to volatile objects are evaluated strictly according to the rules of the abstract machine.… This is the observable behavior of the program.”
This specification has no applicability to labels, since labels are not objects, nor are labels accessed.
In theory, the language could be extended so that volatile
could apply to labels. To do this, you would need to specify what it means. Saying it means they “are not to be tampered by compiler optimizations” is insufficient because it is unclear, uses undefined terms (“tampered”), and uses inapplicable terms (The C standard applies to C implementations, not to compilers. The word “compiler” does not even appear in the normative part of the standard.).