Estou estudando ISO/IEC 9899:2023 (E) 6.2.6 Representações de tipos: 6.2.6.1 Geral, parágrafo 6:
Certas representações de objetos não precisam representar um valor do tipo de objeto. Se tal representação for lida por uma expressão lvalue que não possui tipo de caractere, o comportamento é indefinido. Se tal representação for produzida por um efeito colateral que modifica todo ou parte do objeto por uma expressão lvalue que não possui tipo de caractere, o comportamento é indefinido. 54) Tal representação é chamada de representação sem valor.
Estou interessado na frase em destaque. Isso significa que, por exemplo:
union {
int i;
float f;
} u;
(onde, digamos, sizeof(int) == sizeof(float) == 4 e o tipo 'int' não tem bits de preenchimento),
a linha de código
u.i = some_value; // some_value has 'int' type
conterá comportamento indefinido? Afinal, com essa linha, posso (potencialmente) criar uma visualização sem o valor do membro 'f' do objeto de união (por exemplo, NaN).