[LLVMdev] Next LLVM release thoughts?

Chris Lattner sabre at nondot.org
Fri Oct 21 09:38:42 PDT 2005

On Fri, 21 Oct 2005, W Shumaker wrote:
> I'm not sure how many people are using Visual Studio to build the llvm
> tools, other than myself? When I compile the llvm tools on linux I do not
> see any warnings (I believe -Wall is set?). However, under visual studio
> there are a lot of warnings, mostly of this form:
> warning C4244: 'initializing' : conversion from 'uint64_t' to 'unsigned
> int', possible loss of data

I'm aware of those warnings in a VC++ build, and JeffC (the VC++ 
maintainer) is too.

> These all seem to be valid warnings although I haven't looked at them
> all in detail. The ones I have looked at seem to be OK and intentional.
> I am relatively new to using llvm and was wondering, since a release is
> planned, how aware anyone was of these warnings under VS and whether I
> should spend some time to help clean them up? Or just leave them as is.
> Here is a typical examples:

I've looked at them briefly, and most of them are not actually bugs.  Some 
do indicate that we are missing a feature (e.g. arrays with more than 4G 
elements) though, so I would be happy if they were cleaned up.  If you 
would like to submit patches to help with it, it would certainly be 

> warning C4244: '+=' : conversion from 'uint64_t' to 'unsigned int'
>      if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N.Val->getOperand(1))) {

I'm not sure how this line would cause the warning (not having a +=), 
maybe it is one nearby?  This is an example of the sort of thing where the 
warning is bogus and needs to be silenced by a cast.  CN->getValue() 
returns a uint64_t, but on 32-bit targets, we know it will always fit into 
an unsigned.  In target-specific code, therefore, casting to an unsigned 
is safe.

In any case, I think it would be great to have a warning free VC++ build! 



More information about the llvm-dev mailing list