diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-23 05:10:05 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-23 05:10:05 +0000 |
commit | 7f1d9abd026325c900a264b19bd355572069a5d4 (patch) | |
tree | 03ab9025777eeb4bd45e35a29e2e486bfd42f4f1 | |
parent | 84b7d3c6bd985bb18bc83b4137a0487ef2ce09ed (diff) | |
download | gcc-7f1d9abd026325c900a264b19bd355572069a5d4.tar.gz |
Don't crash on Sizeof of bad type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170430 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 050942c619c..e9a26a0da0d 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -7980,7 +7980,11 @@ Builtin_call_expression::do_get_tree(Translate_context* context) mpz_init(val); Type* dummy; bool b = this->integer_constant_value(true, val, &dummy); - gcc_assert(b); + if (!b) + { + gcc_assert(saw_errors()); + return error_mark_node; + } tree type = Type::lookup_integer_type("int")->get_tree(gogo); tree ret = Expression::integer_constant_tree(val, type); mpz_clear(val); |