It doesn't invoke undefined behaviour. In 6.7.6 (3), it is stated
A full declarator is a declarator that is not part of another declarator. The end of a full declarator is a sequence point.
that the end of a full declarator is a sequence point.
int a = 1, b = a++;
// ^ end of full declarator