Цитата(Эдди @ Apr 23 2015, 14:42)
Ебилд написал и установил. У меня сейчас версия 3.4.0 стоит. А в официальных репах только 2.5.0.
А вообще, надо ебилд обновить. Вроде бы в sdcc еще что-то интересное добавили...
А что именно там побагфиксили?
У меня снапшот двухмесячной давности и я как-то не вижу особых изменений в качестве выходного кода
Код
$ sdcc -v
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8 3.4.3 #9191 (Mar 7 2015) (Linux)
основных претензий две:
- для того чтобы не выкидывал логику, приходится в некоторых ситуациях едва ли не половину переменных объявлять как volatile.
- в выходной hex попадают абсолютно все функции - вне зависимости используете вы их или нет, как пример - в файле filter.c две функции, реализующих фильтр: u8 Filter8(u8 *) и u16 Filter16(u16 *), так вот если использовать в проекте filter.с для вызова функции Filter8, то Filter16 так же попадёт в итоговый hex. проблема старая и давно известная, но в качестве workaround, увы, предлагается использовать дробление на файлы функций.