diff options
author | guerby <guerby@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-23 06:28:52 +0000 |
---|---|---|
committer | guerby <guerby@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-23 06:28:52 +0000 |
commit | 369795e5d9b5109b9961bf0859994e7806c18c65 (patch) | |
tree | 7042f455dd05cdc83ab99099b192a908f2b8dbb8 /gcc/ada/trans.c | |
parent | 727b9178a3c229153c0bc436f39a1f1f46816f94 (diff) | |
download | gcc-369795e5d9b5109b9961bf0859994e7806c18c65.tar.gz |
2004-04-22 Laurent GUERBY <laurent@guerby.net>
PR optimization/14984
PR optimization/14985
* trans.c (gigi): Fix non determinism leading to bootstrap
comparison failures.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81076 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/trans.c')
-rw-r--r-- | gcc/ada/trans.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index 9c5b3f5f883..8b485455949 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -2112,8 +2112,11 @@ tree_transform (Node_Id gnat_node) for (gnat_temp = First (Elsif_Parts (gnat_node)); Present (gnat_temp); gnat_temp = Next (gnat_temp)) { - tree gnu_elseif - = build_nt (IF_STMT, gnat_to_gnu (Condition (gnat_temp)), + tree gnu_cond, gnu_elseif; + + gnu_cond = gnat_to_gnu (Condition (gnat_temp)); + gnu_elseif + = build_nt (IF_STMT, gnu_cond, build_block_stmt (Then_Statements (gnat_temp)), NULL_TREE, NULL_TREE); @@ -2123,10 +2126,18 @@ tree_transform (Node_Id gnat_node) gnu_result = gnu_elseif; } - gnu_result = build_nt (IF_STMT, gnat_to_gnu (Condition (gnat_node)), - build_block_stmt (Then_Statements (gnat_node)), - nreverse (gnu_result), - build_block_stmt (Else_Statements (gnat_node))); + { + tree gnu_cond, then_block, else_block; + + gnu_cond = gnat_to_gnu (Condition (gnat_node)); + then_block = build_block_stmt (Then_Statements (gnat_node)); + else_block = build_block_stmt (Else_Statements (gnat_node)); + + gnu_result = build_nt (IF_STMT, gnu_cond, + then_block, + nreverse (gnu_result), + else_block); + } break; case N_Case_Statement: |