aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2014-05-05 21:48:52 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2014-05-05 21:48:52 +0000
commita29aa02e798ba731d43363495f158f0dea351160 (patch)
treead4c255ccba58a2d216f6d7d461f8f76090d60fa /gcc
parentc2ac23fe235cd1be19476d11b6942f1d0e1c7dac (diff)
downloadgcc-a29aa02e798ba731d43363495f158f0dea351160.zip
gcc-a29aa02e798ba731d43363495f158f0dea351160.tar.gz
gcc-a29aa02e798ba731d43363495f158f0dea351160.tar.bz2
compiler: Use backend interface for type info expressions.
From-SVN: r210084
Diffstat (limited to 'gcc')
-rw-r--r--gcc/go/gofrontend/expressions.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index a4f959d..ec59354 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -14095,9 +14095,13 @@ Type_info_expression::do_get_tree(Translate_context* context)
default:
go_unreachable();
}
- tree val_type_tree = type_to_tree(this->type()->get_backend(gogo));
- go_assert(val_type_tree != error_mark_node);
- return build_int_cstu(val_type_tree, val);
+ mpz_t cst;
+ mpz_init_set_ui(cst, val);
+ Btype* int_btype = this->type()->get_backend(gogo);
+ Bexpression* ret =
+ gogo->backend()->integer_constant_expression(int_btype, cst);
+ mpz_clear(cst);
+ return expr_to_tree(ret);
}
// Dump ast representation for a type info expression.