<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt"><div dir="ltr">On Sat, Dec 15, 2012 at 10:32 PM, Rajendra <span dir="ltr"><<a href="mailto:rks@cse.iitb.ac.in" target="_blank" class="cremed">rks@cse.iitb.ac.in</a>></span> wrote:<br>
<div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I want to get precise int value for a variable from IntegerLiteral type and float value for a variable from FloatingLiteral type (do not want to loose precision).</blockquote><div><br></div><div style>If you do not want to lose precision, you do not want an 'int' or 'float'. The literal AST nodes expose an APInt and APFloat (resp.) which encode the exact value with full precision. See the documentation for their APIs, including methods to query how much precision is required to represent them exactly, and other basic properties.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> I don't see a function to call to get int or unsigned int directly.<br>
<br>
Is following code only correct way or is there any better way to get these?<br>
<br>
    const Expr *e = varDecl->getInit();<br>
    const IntegerLiteral *IL = dyn_cast<IntegerLiteral>(e);  // e is of type Expr*<br>
    double val = IL->getValue().<u></u>signedRoundToDouble();<br>
    int ival = (int) val;<br>
    std::cerr << "\tinitial value: " << val << " ival " << ival << "\n";<br>
<br>
    const Expr *e = varDecl->getInit();<br>
    const FloatingLiteral *FL = dyn_cast<FloatingLiteral>(e);  // e is of type Expr*<br>
    double val = FL->getValue().<u></u>convertToDouble();<br>
    float fval = (float) val;<br>
    std::cerr << "\tinitial value: " << val << " fval " << fval << "\n";<br>
<br>
Please advise.<span class="HOEnZb"><font color="#888888"><br>
<br>
- Rajendra<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="cremed">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank" class="cremed">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</font></span></blockquote></div><br></div></div></div>