unsigned char x = 12;
{ unsigned char x = x; }
If an indeterminate value is produced by an evaluation, the behavior is undefined except in the following cases:
...
-- If an indeterminate value of unsigned narrow character type is produced by the evaluation of the initialization expression when initializing an object of unsigned narrow character type, that object is initialized to an indeterminate value.