char arithmetic integral promotion

Which overload is called?

#include <iostream>
void f(unsigned int) { std::cout << "u"; }
void f(int)          { std::cout << "i"; }
void f(char)         { std::cout << "c"; }
int main() {
    char x = 1;
    char y = 2;
    f(x + y);
}
A

Compilation error (ambiguous)

B

f(char) (prints c)

C

f(int) (prints i)

D

f(unsigned int) (prints u)