LWIP GCC chapu to dobre?

Jan Waclawek konfera na efton.sk
Pátek Říjen 2 13:45:47 CEST 2015


Ano.

Warningy sa daju potlacat selektivne pre funkcie pomocou pragmy GCC
diagnostic, ja mam napriklad definovane makro

  #define NOWARN_CONST(...)                         \
  _Pragma("GCC diagnostic push")                    \
  _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") \
  __VA_ARGS__                                       \
  _Pragma("GCC diagnostic pop")


Vyguglil som si tiez (a nasledne vyskusal), ze sa da ten warning potlacit
pre to makro pomocou typecastu toho pointra na (void*)

#define ip_addr_isany(addr1) ((void*)(addr1) == NULL || (addr1)->addr ==
IPADDR_ANY)

Dalsim - mozno najlepsim - riesenim je si urobit ine makro, kde sa na to
NULL nebude testovat, a  pouzivat ho v miestach, kde je to makro pouzite s
konstantnym nenulovym pointrom.

wek





----- Original Message ---------------
>#define ip_addr_isany(addr1) ((addr1) == NULL || (addr1)->addr == 
>IPADDR_ANY)
>
>ip_addr_t sn_mask, gw_addr;    // lokalni parametr
>
>if (ip_addr_isany(&gw_addr))
>
>pri prekladu:
>Middlewares\Third_Party\LwIP\src\core\dhcp.c|987|warning: the comparison 
>will always evaluate as 'false' for the address of 'gw_addr' will never 
>be NULL [-Waddress]|
>
>Chapu dobre, ze to je varovani, ze prvni cast podminky je tam nahouby a 
>druha cast podminky bude normalne fungovat?
>Jak potlacit ten warning jen pro ten konkretni soubor nebo lepe funkci?



Další informace o konferenci Hw-list