literal->token = lexical_cast<string>(r_constant_value.value<unsigned>())+"u";
else if(r_constant_value.check_type<float>())
{
- literal->token = lexical_cast<string>(r_constant_value.value<float>());
- if(isnumrc(literal->token))
+ literal->token = lexical_cast<string>(r_constant_value.value<float>(), Fmt().precision(8));
+ if(literal->token.find('.')==string::npos && literal->token.find('e')==string::npos)
literal->token += ".0";
}
else
/* An assignment to the target hides any assignments to the same target or
its subfields. */
VariableInfo &var_info = variables[target.declaration];
- for(unsigned i=0; i<var_info.assignments.size(); ++i)
+ for(unsigned i=0; i<var_info.assignments.size(); )
{
const Assignment::Target &t = var_info.assignments[i]->target;