]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
compiler: Use backend interface for type info expressions.
authorIan Lance Taylor <ian@gcc.gnu.org>
Mon, 5 May 2014 21:48:52 +0000 (21:48 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Mon, 5 May 2014 21:48:52 +0000 (21:48 +0000)
From-SVN: r210084

gcc/go/gofrontend/expressions.cc

index a4f959da09d0ed0efb38e76197ebc24cfaef6234..ec59354f7fe0fc27a0589e7a3cd09d7ce6e51273 100644 (file)
@@ -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.