[LLVMdev] Seeing a crash with ConstantFP::get

Neil Booth neil at daikokuya.co.uk
Thu Sep 6 06:01:48 PDT 2007


Dale Johannesen wrote:-

> >I spent some time walking through what?s going on with a friend of  
> >mine from VStudio.  Category is given 2 bits in the APFloat class  
> >definition.  It?s sign extending the enum value for the comparisons  
> >when it loads it out of the class, so the 2 becomes a -2 and the  
> >comparison fails.  He sent me a piece of code which I might be able  
> >to use to force the issue.  I?ll update when I try that out.
> OK.  This possibility occurred to me, I checked the C++ standard, and  
> the code is valid; this is explicitly required to work, and there's  
> an example.

Thought this might be my bug for a moment.

4.5p3 right?  "If the bit-field has an enumerated type, it is
treated as any other value of that type for promotion purposes".
So the bitfield promotes like the enumeration constant itself and
the comparison should be good.  It would be pretty sad indeed if
assigning an enum of that type to the bitfield didn't then compare
equal to itself :)

> However VStudio is what it is.  I expect expanding the field to
> 3 bits is good enough.  I don't think that will hurt anything.

MSVC--.

Neil.



More information about the llvm-dev mailing list