[so] [Tema 0][Win] Warning compliare macro DIE

Vlad Dogaru ddvlad at herebedragons.ro
Fri Mar 1 14:39:37 EET 2013


On Fri, Mar 01, 2013 at 01:03:58PM +0200, Costash wrote:
> 2013/2/24 Sorina - Gabriela Sandu <sandu.sorina at gmail.com>:
> > Hello,
> >
> > 2013/2/24 Vicentiu Ciorbaru <cvicentiu at gmail.com>:
> >>
> >> On Feb 24, 2013 2:30 PM, "Sorina - Gabriela Sandu" <sandu.sorina at gmail.com>
> >> wrote:
> >>> La compliarea pe Windows pe Vmchecker primesc la toate liniile la care
> >>> am folosit macro-ul DIE (cel de pe ocw) warning-ul:
> >>>
> >>> warning C4127: conditional expression is constant
> >>
> >> Si eu am folosit macroul die si nu am avut probleme. Ai folosit flagul cu
> >> no_something_deprecated nu?
> >
> > Nu îl foloseam, foloseam ceva cu no_warnings, care nu pare să fie suficient.
> >
> > Cu flagul -D_CRT_SECURE_NO_DEPRECATE este ok, nu mai am nici un
> > warning, thanks ;)
> >
> >
> 
> Ai mai folosit cumva alt flag? La mine de exemplu, tot la liniile cu
> macro-ul DIE
> am în continuare warning-ul, deși compilez cu acel flag:
> 
> 
>         cl -c /Wall /nologo -D_CRT_SECURE_NO_DEPRECATE tema0.c
> tema0.c
> tema0.c(89) : warning C4127: conditional expression is constant
> tema0.c(125) : warning C4127: conditional expression is constant
> tema0.c(142) : warning C4127: conditional expression is constant
> tema0.c(162) : warning C4127: conditional expression is constant
> tema0.c(237) : warning C4127: conditional expression is constant
> 
> Vreo idee care-i treaba?

CL e cretin și crede că "do { } while (0)" e Moartea [1].

Scrolling down at [1], persoana numită Michael de Ruiter sugerează o
soluție (urâtă, dar funcțională) care implică dezactivarea warningului
în cazul macro-ului cu pricina.

[1] http://stackoverflow.com/questions/1946445/c-c-how-to-use-the-do-while0-construct-without-compiler-warnings-like-c412

Hope this helps,
Vlad


More information about the so mailing list