реклама на сайте
подробности

 
 
> Непонятный варнинг, arm-none-eabi-gcc
_Pasha
сообщение Jul 23 2014, 10:59
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Всем привет!
Сабж от тула такого
CODE
~/tools/gcc-arm-none-eabi-4_8-2013q4/bin$ arm-none-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-eabi-gcc
COLLECT_LTO_WRAPPER=/usr/bin/../lib/gcc/arm-none-eabi/4.8.3/lto-wrapper
Target: arm-none-eabi
Configured with: /home/build/work/GCC-4-8-build/src/gcc/configure --target=arm-none-eabi --prefix=/home/build/work/GCC-4-8-build/install-native
--libexecdir=/home/build/work/GCC-4-8-build/install-native/lib --infodir=/home/build/work/GCC-4-8-build/install-native/share/doc/gcc-arm-none-eabi/info
--mandir=/home/build/work/GCC-4-8-build/install-native/share/doc/gcc-arm-none-eabi/man
--htmldir=/home/build/work/GCC-4-8-build/install-native/share/doc/gcc-arm-none-eabi/html
--pdfdir=/home/build/work/GCC-4-8-build/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float
--disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads
--disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi
--with-sysroot=/home/build/work/GCC-4-8-build/install-native/arm-none-eabi --build=i686-linux-gnu --host=i686-linux-gnu
--with-gmp=/home/build/work/GCC-4-8-build/build-native/host-libs/usr --with-mpfr=/home/build/work/GCC-4-8-build/build-native/host-libs/usr
--with-mpc=/home/build/work/GCC-4-8-build/build-native/host-libs/usr --with-isl=/home/build/work/GCC-4-8-build/build-native/host-libs/usr
--with-cloog=/home/build/work/GCC-4-8-build/build-native/host-libs/usr --with-libelf=/home/build/work/GCC-4-8-build/build-native/host-libs/usr
--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors'
--with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r
Thread model: single
gcc version 4.8.3 20131129 (release) [ARM/embedded-4_8-branch revision 205641] (GNU Tools for ARM Embedded Processors)


Пишет варнинг, связанный с stdarg.h
CODE
In file included from ./../../src/si446x_api_lib.c:13:0:
./../../src/si446x_api_lib.c: In function 'si446x_set_property':
./../../src/si446x_api_lib.c:321:46: warning: 'U8' is promoted to 'int' when passed through '...' [enabled by default]
Pro2Cmd[cmdIndex] = va_arg (argList, U8);
^
./../../src/si446x_api_lib.c:321:46: note: (so you should pass 'int' not 'U8' to 'va_arg')
./../../src/si446x_api_lib.c:321:46: note: if this code is reached, the program will abort


Фрагмент исходника такой
Код
   va_start (argList, START_PROP);
    cmdIndex = 4;
    while(NUM_PROPS--)
    {
        Pro2Cmd[cmdIndex] = va_arg (argList, U8);
        cmdIndex++;
    }
    va_end(argList);

U8 соответственно = uint8_t, и там это нужно, а мог бы задать uint_least8_t и обмануть, не разбираясь в сути.
А тут - такое...
Куда копать?

Сообщение отредактировал IgorKossak - Jul 24 2014, 19:05
Причина редактирования: форматирование
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
demiurg_spb
сообщение Jul 23 2014, 11:45
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Pro2Cmd[cmdIndex] = (U8)va_arg (argList, int);
тыц


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 23 2014, 12:26
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(demiurg_spb @ Jul 23 2014, 14:45) *
Pro2Cmd[cmdIndex] = (U8)va_arg (argList, int);
тыц


Сильно... только что глянул навскидку elm-chan xprintf - там это уже было оказывается, а я раньше не замечал.

Спасибо!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 23 2014, 12:37
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_Pasha @ Jul 23 2014, 13:59) *
Куда копать?
В сторону Стандарта. У функций с переменным числом аргументов параметры расширяются до (unsigned)int, соответственно и извлекать надо тоже (unsigned) int


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 18:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016