При использовании gcc код:
register a = 3;
static b = 3;
разрешено использовать флаги -std=c89 -pedantic-errors, хотя есть предупреждение.
Однако он принимает ошибку с флагами -std=c99 -pedantic-errors.
Интересно, какой раздел стандартов C89 допускает правило "неявного int"?