summaryrefslogtreecommitdiff
path: root/gcc/cgraphbuild.c
diff options
context:
space:
mode:
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-03 11:13:09 +0000
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-03 11:13:09 +0000
commitbb903e9c84ce730268cc488d5d3b71821e2c13a2 (patch)
treecffddfa016b791b26c7af434581e9984b8129eea /gcc/cgraphbuild.c
parente7e718d0e3388209a0ddc92dc0e91baf547dd262 (diff)
downloadgcc-bb903e9c84ce730268cc488d5d3b71821e2c13a2.tar.gz
* cgraphbuild.c (record_reference): Canonicalize constructor
values. * gimple-fold.c (canonicalize_constructor_val): Accept being called without function context. * cgraphunit.c (cgraph_finalize_compilation_unit): Clear current_function_decl and cfun. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171903 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphbuild.c')
-rw-r--r--gcc/cgraphbuild.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c
index 6b8116a612a..3948cf62802 100644
--- a/gcc/cgraphbuild.c
+++ b/gcc/cgraphbuild.c
@@ -53,6 +53,12 @@ record_reference (tree *tp, int *walk_subtrees, void *data)
tree decl;
struct record_reference_ctx *ctx = (struct record_reference_ctx *)data;
+ t = canonicalize_constructor_val (t);
+ if (!t)
+ t = *tp;
+ else if (t != *tp)
+ *tp = t;
+
switch (TREE_CODE (t))
{
case VAR_DECL: