projects
/
gcc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
bd9c1f8
)
Don't crash on empty struct created due to recursive reference.
author
Ian Lance Taylor
<ian@gcc.gnu.org>
Wed, 15 Dec 2010 23:40:15 +0000
(23:40 +0000)
committer
Ian Lance Taylor
<ian@gcc.gnu.org>
Wed, 15 Dec 2010 23:40:15 +0000
(23:40 +0000)
From-SVN: r167881
gcc/go/gofrontend/expressions.cc
patch
|
blob
|
history
diff --git
a/gcc/go/gofrontend/expressions.cc
b/gcc/go/gofrontend/expressions.cc
index 7de4ec93c1de0068c06c95ca94bd7148c19d47d5..844ff660a2459916802171ecbd01ea12d4ffcef5 100644
(file)
--- a/
gcc/go/gofrontend/expressions.cc
+++ b/
gcc/go/gofrontend/expressions.cc
@@
-9628,7
+9628,13
@@
Field_reference_expression::do_get_tree(Translate_context* context)
return error_mark_node;
gcc_assert(TREE_CODE(TREE_TYPE(struct_tree)) == RECORD_TYPE);
tree field = TYPE_FIELDS(TREE_TYPE(struct_tree));
- gcc_assert(field != NULL_TREE);
+ if (field == NULL_TREE)
+ {
+ // This can happen for a type which refers to itself indirectly
+ // and then turns out to be erroneous.
+ gcc_assert(saw_errors());
+ return error_mark_node;
+ }
for (unsigned int i = this->field_index_; i > 0; --i)
{
field = DECL_CHAIN(field);