eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2018-09-06 07:12 pm

Еще косяк в гцц-7

Пересобирая старый велосипед, обнаружил еще один косяк нового gcc. Теперь помимо -Wno-trampolines (иначе gcc ругается на вложенные функции, а без них жизнь как-то скучна) надо указывать -Wno-implicit-fallthrough. Ошибку выдал на совершенно ровном месте:
bool get_radians(double *ret, char *str){
    double val = 0., ftmp, sign = 1.;
    char *ptr;
    assert(str);
    switch(*str){ // check sign
        case '-':
            sign = -1.;
        case '+':
            str++;
    }...

Япона ж мать! Чего ж авторы гцц так жизнь людям на ровном месте усложняют? Уж здесь то им что не понравилось? Переменная сразу же инициирована, а если первый символ в строке '-', то соответственно меняется переменная знака. Какого хрена гцц хочет от меня break после первого case, если в обоих случаях мне нужно сделать str++??? Козлы!!!
UPD: здесь прочитал, что нужно добавлять строчку __attribute__ ((fallthrough));. Блин, вот же япона мать!!! Как дальше жЫть?

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org