diff options
author | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-08 03:20:30 +0000 |
---|---|---|
committer | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-08 03:20:30 +0000 |
commit | 643df0593c630691fa6877cddeefdd4c3023d444 (patch) | |
tree | 1eb48ad31d05a9ce117bedc17115de96dffa2f0b /gcc/fortran/trans-const.c | |
parent | 54f3f029d816c6d1626310649adfda740e203f7b (diff) | |
parent | d5d8f1ccc6d3972dc5cfc0949e85e0b1c9e24ee0 (diff) | |
download | gcc-transactional-memory.tar.gz |
* Merge from mainline rev 181122.transactional-memory
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/transactional-memory@181148 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-const.c')
-rw-r--r-- | gcc/fortran/trans-const.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c index 5fbe765c493..fa820ef10de 100644 --- a/gcc/fortran/trans-const.c +++ b/gcc/fortran/trans-const.c @@ -358,6 +358,8 @@ gfc_conv_constant_to_tree (gfc_expr * expr) void gfc_conv_constant (gfc_se * se, gfc_expr * expr) { + gfc_ss *ss; + /* We may be receiving an expression for C_NULL_PTR or C_NULL_FUNPTR. If so, the expr_type will not yet be an EXPR_CONSTANT. We need to make it so here. */ @@ -380,14 +382,18 @@ gfc_conv_constant (gfc_se * se, gfc_expr * expr) return; } - if (se->ss != NULL) + ss = se->ss; + if (ss != NULL) { - gcc_assert (se->ss != gfc_ss_terminator); - gcc_assert (se->ss->type == GFC_SS_SCALAR); - gcc_assert (se->ss->expr == expr); + gfc_ss_info *ss_info; + + ss_info = ss->info; + gcc_assert (ss != gfc_ss_terminator); + gcc_assert (ss_info->type == GFC_SS_SCALAR); + gcc_assert (ss_info->expr == expr); - se->expr = se->ss->data.scalar.expr; - se->string_length = se->ss->string_length; + se->expr = ss_info->data.scalar.value; + se->string_length = ss_info->string_length; gfc_advance_se_ss_chain (se); return; } |