Il salto su un'inizializzazione di una variabile è mal formato o provoca un comportamento indefinito?

Il salto su un'inizializzazione di una variabile è mal formato o provoca un comportamento indefinito?

È mal formato quando l'inizializzazione non è vuota.

L'inizializzatore rende l'inizializzazione non vuota. Per contrasto, questo

void foo()
{
    goto bar;
    int x; // no initializer
    bar: ;
}

sarebbe ben formato. Nonostante i soliti avvertimenti sull'utilizzo di x con un valore indeterminato.


Dall'istruzione goto: