Sep. 6th, 2018

eddy_em: (Default)
Пересобирая старый велосипед, обнаружил еще один косяк нового 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));. Блин, вот же япона мать!!! Как дальше жЫть?

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 09:20 pm
Powered by Dreamwidth Studios