Hi,

This patch removes redundant caller-side HAS_ROWS checks before calls to
a68_low_dup.

a68_low_dup now performs its own HAS_ROWS checks internally, making
these caller-side checks unnecessary.

Thanks,
Kanishka Solanki
From 5652830ca1aea247de25d09a3a486231919b49d1 Mon Sep 17 00:00:00 2001
From: Kanishka Solanki <[email protected]>
Date: Mon, 15 Jun 2026 20:54:06 +0530
Subject: [PATCH] remove redundant HAS_ROWS check from caller side of
 a68_low_dup

a68_low_dup originally always performed a deep copy, so callers
avoided invoking it for values without rows by checking HAS_ROWS
beforehand.

a68_low_dup now performs its own HAS_ROWS check and returns the
original expression unchanged when a deep copy is not required.
Remove the remaining caller-side HAS_ROWS checks, as they are
redundant.

gcc/algol68/ChangeLog

	* a68-low-clauses.cc (a68_lower_collateral_clause): Do not check
	for rows before calling a68_low_dup.
	* a68-low-units.cc (collect_call_arguments): Likewise.

Signed-off-by: Kanishka Solanki <[email protected]>
---
 gcc/algol68/a68-low-clauses.cc | 1 -
 gcc/algol68/a68-low-units.cc   | 1 -
 2 files changed, 2 deletions(-)

diff --git a/gcc/algol68/a68-low-clauses.cc b/gcc/algol68/a68-low-clauses.cc
index 9fca4b872bc..f59dbcbb318 100644
--- a/gcc/algol68/a68-low-clauses.cc
+++ b/gcc/algol68/a68-low-clauses.cc
@@ -1132,7 +1132,6 @@ a68_lower_collateral_clause (NODE_T *p ATTRIBUTE_UNUSED,
 	  for (tree_stmt_iterator si = tsi_start (units); !tsi_end_p (si); tsi_next (&si))
 	    {
 	      tree unit = tsi_stmt (si);
-	      if (A68_TYPE_HAS_ROWS_P (TREE_TYPE (unit)))
 		unit = a68_low_dup (unit);
 	      CONSTRUCTOR_APPEND_ELT (ve, size_int (num_units), unit);
 	      num_units += 1;
diff --git a/gcc/algol68/a68-low-units.cc b/gcc/algol68/a68-low-units.cc
index f7bfe6f822f..054f7fb3d74 100644
--- a/gcc/algol68/a68-low-units.cc
+++ b/gcc/algol68/a68-low-units.cc
@@ -1133,7 +1133,6 @@ collect_call_arguments (NODE_T *p, vec<tree, va_gc> *args, LOW_CTX_T ctx)
 	  /* In Algol 68 parameters are passed via an identity declaration, so
 	     this must implement same semantics.  */
 	  tree arg = a68_lower_tree (p, ctx);
-	  if (HAS_ROWS (MOID (p)))
 	    arg = a68_low_dup (arg);
 	  arg = a68_consolidate_ref (MOID (p), arg);
 	  args->quick_push (arg);
-- 
2.43.0

Reply via email to