I still does not throws an error:

#include <cstdint>

#include <iostream>

using ::std::int32_t;

using ::std::uint32_t;

int32_t callme()

{

int32_t x = -1;

return x;

}

int main()

{

int32_t x = 9;

uint32_t i = x;

uint32_t i1 = callme();

std::cout << " " << x << " " << i << " " << i1 << std::flush << std::endl;

return 0;

}


/c/tools/mingw64/bin/c++ -std=c++11 -Wall -Wconversion -Wpedantic -Wextra
-w -Wsign-compare -Wnarrowing -Wreturn-type -Wno-int-conversion
-Wtype-limits -Wuseless-cast -Wsign-conversion -Wextra -Wsign-conversion
cast.cpp




On Mon, Mar 5, 2018 at 1:38 PM, Liu Hao <lh_mo...@126.com> wrote:

> 在 2018年03月05日 15:42, Satya Prakash Prasad 写道:
> > Is there a compiler flag that logs warning / error in case of any
> implicit
> > conversions - like int32_t to uint32_t.
> >
> > #include <cstdint>
> > #include <iostream>
> >
> > using ::std::int32_t;
> > using ::std::uint32_t;
> >
> > int main(int argc, char *argv[])
> > {
> >    int32_t x = 9;
> >     uint32_t i = x;
> >    uint32_t i1 = socketread(...); // returns  int32_t  -1 on error and >0
> > on success
> >     std::cout << " " << x << " " << i << std::flush << std::endl;
> >     return 0;
> > }
> > c++ -std=c++11 -Wall -Wconversion -Wpedantic cast.cpp
> >
> > I get no issues / warning / error during compilation - is there a way it
> > can achieved.
> >
>
> Try `-Wsign-conversion` in addition to `-Wconversion`.
>
>
> --
> Best regards,
> LH_Mouse
>

Reply via email to