Integral operands go through promotion and conversion before an operator is evaluated.
Promotion is applied to operands of lower rank than int (bool, char, short). The operands are promoted to int or unsigned (if int can't represent all values).
Compiler Explorer link: https://compiler-explorer.com/z/r4K3qhfeT