-8402f6ac021ba20163ab4fcdb10ab7bb642de6dc
+e521123b23494148d534755e2f3d7806b42c96ad
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
mpz_t intval;
Numeric_constant nc;
if (this->expr_->numeric_constant_value(&nc)
- && nc.to_int(&intval)
- && mpz_fits_ushort_p(intval))
+ && nc.to_int(&intval))
{
std::string s;
- Lex::append_char(mpz_get_ui(intval), true, &s, loc);
+ unsigned int x;
+ if (mpz_fits_uint_p(intval))
+ x = mpz_get_ui(intval);
+ else
+ {
+ char* s = mpz_get_str(NULL, 16, intval);
+ go_warning_at(loc, 0,
+ "unicode code point 0x%s out of range in string", s);
+ x = 0xfffd;
+ }
+ Lex::append_char(x, true, &s, loc);
mpz_clear(intval);
Expression* se = Expression::make_string(s, loc);
return se->get_backend(context);