C言語入門 (ASCII SOFTWARE SCIENCE Language)に

できるだけ ANSI 規格に準拠して関数はプロトタイプ宣言をするようにしましょう。プロトタイプ宣言がされている関数の引数については、それが正しい型であるか否かをコンパイラがチェックするので、引数の型の不整合をコンパイル時に検出できます。

と書いてあったので

int factorial(int);
int main(void)
{
  char x=5;
  printf("%d!=%d",x,factorial(x));
  return 0;
}

int factorial(int n)
{
  if (n==1)
    return (1);
  else
    return (n*factorial(n-1));
}

と書いてgccでコンパイルしたんですが、コンパイル時にエラーが出ませんでした。
(factorialはintなのに、実引数のxはchar型)

gccでは引数の型の不整合をチェックしないのでしょうか?
(gccのバージョンは4.7.2です)