diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-06-17 23:19:19 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-06-27 14:05:51 +0200 |
commit | 388f22b92fe2218427e1b5ab5d29f51d037f2969 (patch) | |
tree | 498af7869dd953878425b0c8fb2b48161c59f9d1 /gcc | |
parent | 3d3930f52aaeb53b9c6460459b8711fc527d6741 (diff) | |
download | gcc-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.cc | 8 |
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) { |