[DTrace-devel] [PATCH 2/6] Partial revert of 279d7fe8

Kris Van Hees kris.van.hees at oracle.com
Mon Mar 7 19:49:58 UTC 2022


Commit 279d7fe8 ("Handle @-type and ... for function arglists.") was a
bit too broad, causing arglists used for tuples to not update the index
in the identifier type list.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 libdtrace/dt_cg.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 4713f033..b9b99a1e 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -2484,7 +2484,7 @@ dt_cg_arglist(dt_ident_t *idp, dt_node_t *args,
 	for (dnp = args; dnp != NULL; dnp = dnp->dn_list)
 		dt_cg_node(dnp, dlp, drp);
 
-	for (dnp = args; dnp != NULL; dnp = dnp->dn_list) {
+	for (dnp = args; dnp != NULL; dnp = dnp->dn_list, i++) {
 		dtrace_diftype_t t;
 		uint_t op;
 		int reg;
@@ -2517,8 +2517,6 @@ dt_cg_arglist(dt_ident_t *idp, dt_node_t *args,
 
 		if (reg != DIF_REG_R0)
 			dt_regset_free(drp, reg);
-		if (i < isp->dis_varargs)
-			i++;
 	}
 
 	if (i > yypcb->pcb_hdl->dt_conf.dtc_diftupregs)
@@ -3237,7 +3235,7 @@ dt_cg_assoc_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
 			   BPF_NOP());
 #else
 		xyerror(D_UNKNOWN, "internal error -- no support for "
-			"translated types yet\n");
+			"associative arrays yet\n");
 #endif
 	}
 }
-- 
2.34.1




More information about the DTrace-devel mailing list