проверка типов перечислений в C/gcc

Смотрите простой пример ниже. Когда функция, возвращающая один enum, присваивается переменной другого enum, я не получаю никакого предупреждения даже при gcc -Wall -pedantic. Почему компилятор языка Си не может выполнять проверку типов для enumов? Или это специфика gcc? У меня сейчас нет доступа к другому компилятору, чтобы попробовать...

enum fruit {
APPLE,
ORANGE
};

enum color {
RED,
GREEN
};

static inline enum color get_color() {
    return RED;
}

int main() {
    enum fruit ftype;
    ftype = get_color();
}
18
задан AusCBloke 21 December 2011 в 23:10
поделиться