aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-06-17 23:19:19 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-06-27 14:05:51 +0200
commit388f22b92fe2218427e1b5ab5d29f51d037f2969 (patch)
tree498af7869dd953878425b0c8fb2b48161c59f9d1 /gcc
parent3d3930f52aaeb53b9c6460459b8711fc527d6741 (diff)
downloadgcc-388f22b92fe2218427e1b5ab5d29f51d037f2969.zip
gcc-388f22b92fe2218427e1b5ab5d29f51d037f2969.tar.gz
gcc-388f22b92fe2218427e1b5ab5d29f51d037f2969.tar.bz2
ada: Make the identification of case expressions more robust
gcc/ada/ * gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean constant and use From_Conditional_Expression flag for its value.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/gcc-interface/trans.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc
index ddc7b6d..b74bb06 100644
--- a/gcc/ada/gcc-interface/trans.cc
+++ b/gcc/ada/gcc-interface/trans.cc
@@ -2700,11 +2700,9 @@ Case_Statement_to_gnu (Node_Id gnat_node)
never been problematic, but not for case expressions in Ada 2012. */
if (choices_added_p)
{
- const bool is_case_expression
- = (Nkind (Parent (gnat_node)) == N_Expression_With_Actions);
- tree group
- = build_stmt_group (Statements (gnat_when), !is_case_expression);
- bool group_may_fallthru = block_may_fallthru (group);
+ const bool case_expr_p = From_Conditional_Expression (gnat_node);
+ tree group = build_stmt_group (Statements (gnat_when), !case_expr_p);
+ const bool group_may_fallthru = block_may_fallthru (group);
add_stmt (group);
if (group_may_fallthru)
{