projects
/
gcc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
061793a
)
compiler: Check for initialization loop in constant initializer.
author
Ian Lance Taylor
<ian@gcc.gnu.org>
Fri, 17 Feb 2012 19:27:27 +0000
(19:27 +0000)
committer
Ian Lance Taylor
<ian@gcc.gnu.org>
Fri, 17 Feb 2012 19:27:27 +0000
(19:27 +0000)
From-SVN: r184347
gcc/go/gofrontend/gogo-tree.cc
patch
|
blob
|
history
diff --git
a/gcc/go/gofrontend/gogo-tree.cc
b/gcc/go/gofrontend/gogo-tree.cc
index 352179df02ab0dc8a6ddf82290f26c5d05d2cc8b..603b97ec0c1e89a7fa2f3602cefd191852d4c9a9 100644
(file)
--- a/
gcc/go/gofrontend/gogo-tree.cc
+++ b/
gcc/go/gofrontend/gogo-tree.cc
@@
-834,8
+834,15
@@
Gogo::write_globals()
else if (init == NULL_TREE)
;
else if (TREE_CONSTANT(init))
- this->backend()->global_variable_set_init(var,
- tree_to_expr(init));
+ {
+ if (expression_requires(no->var_value()->init(), NULL, no))
+ error_at(no->location(),
+ "initialization expression for %qs depends "
+ "upon itself",
+ no->message_name().c_str());
+ this->backend()->global_variable_set_init(var,
+ tree_to_expr(init));
+ }
else if (is_sink)
var_init_tree = init;
else