<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hola LLVMers,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I’m getting a crash when using ConstantFP::get.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I can repro it by adding one line to the Fibonacci example
program:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
color:blue'>int</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'> main(<font color=blue><span
style='color:blue'>int</span></font> argc, <font color=blue><span
style='color:blue'>char</span></font> **argv) {<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>  <font color=blue><span
style='color:blue'>int</span></font> n = argc > 1 ? atol(argv[1]) : 24;<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>  <font color=green><span
style='color:green'>// Create some module to put our function into it.<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>  Module *M = <font
color=blue><span style='color:blue'>new</span></font> Module(<font
color=maroon><span style='color:maroon'>"test"</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>  <font color=green><span
style='color:green'>// We are about to create the "fib" function:<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>  Function *FibF =
CreateFibFunction(M);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>// add the following line<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><b><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New";
font-weight:bold'>  Constant* C = ConstantFP::get(Type::FloatTy,0.0);<o:p></o:p></span></font></b></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Can someone verify this?  This is on the PC side of my
system which I build with the VStudio files.  I don’t know if the Mac
side sees this as well, but I’ll try and verify.  Seems really odd to
have something this basic crash me.  It came up because the JITter will call
ConstantFP::get with the GenericValue arguments passed it, but the above repro
is a lot simpler and is independent of the JITter.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>My call stack looks like this:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>            in here it fails this:</span></font><font
size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'> 
assert(category == fcNormal || category == fcNaN);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::APFloat::significandParts() 
Line 360 + 0x39 bytes    C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::APFloat::zeroSignificand() 
Line 387 + 0x15 bytes     C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::APFloat::APFloat(const
llvm::fltSemantics & ourSemantics={...}, unsigned __int64 value=1)  Line
307       C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!`anonymous
namespace'::DenseMapAPFloatKeyInfo::getEmptyKey()  Line 277 + 0x11 bytes         C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::DenseMap<`anonymous
namespace'::DenseMapAPFloatKeyInfo::KeyTy,llvm::ConstantFP
*,A0x5b1fa632::DenseMapAPFloatKeyInfo>::getEmptyKey()  Line 236 + 0x9 bytes          C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::DenseMap<`anonymous
namespace'::DenseMapAPFloatKeyInfo::KeyTy,llvm::ConstantFP *,A0x5b1fa632::DenseMapAPFloatKeyInfo>::init(unsigned
int InitBuckets=64)  Line 295 + 0x9 bytes         C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::DenseMap<`anonymous
namespace'::DenseMapAPFloatKeyInfo::KeyTy,llvm::ConstantFP
*,A0x5b1fa632::DenseMapAPFloatKeyInfo>::DenseMap<`anonymous
namespace'::DenseMapAPFloatKeyInfo::KeyTy,llvm::ConstantFP
*,A0x5b1fa632::DenseMapAPFloatKeyInfo>(unsigned int NumInitBuckets=64)  Line
68      C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::ManagedStatic<llvm::DenseMap<`anonymous
namespace'::DenseMapAPFloatKeyInfo::KeyTy,llvm::ConstantFP
*,A0x5b1fa632::DenseMapAPFloatKeyInfo> >::LazyInit()  Line 72 + 0x24
bytes     C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::ManagedStatic<llvm::DenseMap<`anonymous
namespace'::DenseMapAPFloatKeyInfo::KeyTy,llvm::ConstantFP
*,A0x5b1fa632::DenseMapAPFloatKeyInfo> >::operator*()  Line 55  C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!llvm::ConstantFP::get(const
llvm::Type * Ty=0x01b352d8, double V=0.00000000000000000)  Line 299 + 0xe bytes          C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!main(int argc=1, char * *
argv=0x01b35060)  Line 99 + 0x13 bytes  C++<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!__tmainCRTStartup()  Line 586 +
0x19 bytes         C<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            Fibonacci.exe!mainCRTStartup()  Line 403          C<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Thanks,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Chuck.<o:p></o:p></span></font></p>

</div>

</body>

</html>