From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2068.outbound.protection.outlook.com [40.107.20.68]) by sourceware.org (Postfix) with ESMTPS id 872023858D28 for ; Tue, 27 Feb 2024 16:41:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 872023858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 872023858D28 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.20.68 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1709052115; cv=pass; b=xMxRCk9dLkGzFc1r4GOrSGsqwwOx3ssyotr4wLjzvydztfB3HbzBWc3OBL25YLHJ1TJNN7Ba75D7wK+KO7ISr5RA9ymwkojTcEUGdgrAg9ZJ0GVaZ7/Dq7AflUsM6al/tIvCRv+Avl75jlKu2xzzZEbJSm73xFoNMVfdWloQrT4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1709052115; c=relaxed/simple; bh=EEkx/EeA0hZgJasmiRnt6AaKZH4R0hyqb+nMU5yq7Ww=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=DCgrl7OYEl2aROhoITffKIDHrY68tLhUOsKF0jTUQASaYroZ33/YbZxCKJyriVb0PG/NfPT7z/1n39MzKUOHY+NVrGPTyuPFwUO4G3lWE/mnLL5zsv+/OQtOS74750EbAgCW6My1UPIrGajhD28OYy23zLSiXWNEuAS2a7DzNKg= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=VYlw2CHf74Fi0Te9QZ0uQM0oT56Biw4l1xpcFafH4rqY+kpTu3dZaf7llQSRnE6KpBxcQEmr9OT9H+7n56dKCJA5F2q3cXjTNCyP/Zbxi/PsEokG+IUfXk3g+l12Y7t+iRjNpLwBdEuq3QfBCNYbMfyDnAFQfV6cXQk6+uWjl/nNFhEGn06zU8YadTDmBgb1mN+75KeXXvxyUAMMSgqmOjcV9fRO7h3gIiNJTfzvPuOTBuO2nCtrAlaE2y7nxec3JIh3+xxjdPGWvUvMzlmPlfK3OnR6T19+xAcGg7h6G5ZdA5b4E88Tua50wa0KHHtnz44POtde5WQQ3Dy95gnm/w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qf7o5hixba8D1uynEwibnAbHrr/t/U8uvqOjiiH4Nl8=; b=S31teFWqSm/l1zOP+8OIZlxqGanpC1dUGWgvjADhrH6ek1dBrIdEf3Qv7igyTFFomB8S/agMHCNNytgHsrYpAkslrsnyUF6C1so6QvmdtYxVI8sYW9nuGn+b3+3YNUV/9g/kGHNuA8Q1fdAQ2hnUHrCHiHbOM8FUUtF8ljQmV7unuzrRUQ4/JBy4YA/8fcLLJaFmNFvcBJ6njr0LYkZ4a/ngbp1dXj9lnSRXUGxdLevdHK/8vHntDbCl4TcflK5eqXT2k8ORpDdMDjDGM53kqbqsZU4f5tf3I94lZC+o8++F3gBQTqy+8at3w+NW6dBBJURmWmn3i8MAiYqVbGO9wg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qf7o5hixba8D1uynEwibnAbHrr/t/U8uvqOjiiH4Nl8=; b=OO+wIxGcPVtcBwSgbkP0FxeLMj6K+5WWthDhFPnzDAtyupFkARZCt/g59ZAHt5fmtlfp9ckHzDYHWBs0JjF9EQ2zcbnUOX6+NtL4B0JwP5aAEBPH9nnbWAbJDsnYRCJ/TIVHvkixLED+TkdA/fuS3RMZAa6vu76tuGsircyKu1k= Received: from AS9PR04CA0084.eurprd04.prod.outlook.com (2603:10a6:20b:48b::26) by AS2PR08MB9920.eurprd08.prod.outlook.com (2603:10a6:20b:55a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.34; Tue, 27 Feb 2024 16:41:48 +0000 Received: from AM4PEPF00027A5F.eurprd04.prod.outlook.com (2603:10a6:20b:48b:cafe::4f) by AS9PR04CA0084.outlook.office365.com (2603:10a6:20b:48b::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.50 via Frontend Transport; Tue, 27 Feb 2024 16:41:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM4PEPF00027A5F.mail.protection.outlook.com (10.167.16.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25 via Frontend Transport; Tue, 27 Feb 2024 16:41:48 +0000 Received: ("Tessian outbound c926391f1b75:v228"); Tue, 27 Feb 2024 16:41:47 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fba829b72ecfad90 X-CR-MTA-TID: 64aa7808 Received: from f50022651d46.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4A185272-2678-4265-BE90-4F4632B306D5.1; Tue, 27 Feb 2024 16:41:37 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f50022651d46.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 27 Feb 2024 16:41:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j514Bk+5SzObv46pkWKRgFKe8dyctEDw7lmi5DPYCJml7DV18DRuv0VUHy9Ugjhpqjb219H9+QAyF0dwfxb9T5AozfiST9xHfM6n4C1+ol7ZYuxWqBt6SD2r/kGLFXISqXtFNtJjxB5ToUjq8vUeTVzJAb92CJtp6Cld0iOhOiFUV6k/+IkZ55yDXDAFZV8oL9pfek3jXE4xVn2geFx5vHP6hAsvv5h0YwOLjZZCV+cAHS2UnY6SMxUHubgxLOqhfC4tl4m16XEbqLqLasidwx7QEwYo00bxNVlJz7ONpxlOTSlu8Cjsk5ePgLg5qXUGglO8sYfrmhbwXhxqwBjcmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qf7o5hixba8D1uynEwibnAbHrr/t/U8uvqOjiiH4Nl8=; b=DPwONaDYSL5X4YjzTldbLF4IrWza+kLqyA8kZpYqm5FVHa0kEKV9wCPIuQecHlSZVbK2l0TydYZgy8Avi/FrQKtCQ96Vg7CNjhiUbRCMoFAE+FpZNqQ4UoVcT9IqEX1GS3xuLozFiTFl/wmCjgTW+RFP6PN0pcbX9IWD+Bq+6QttQdGPj6U9/dzBxJIeuGYpMnPrk++IH5mlDxsDxalCrwSG5Z5dJxnkXHV5R6tcfrHNpEIDh3diEZ8DVgcM1Ok7StbnAFoJ9r7vONpS0Ztxo6kWgVZx73BEmQLNQ5Ph8EL1q2HtituzDf8WJ1Q9oG3jWoVaX5t50HRKaq5TJ9liNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qf7o5hixba8D1uynEwibnAbHrr/t/U8uvqOjiiH4Nl8=; b=OO+wIxGcPVtcBwSgbkP0FxeLMj6K+5WWthDhFPnzDAtyupFkARZCt/g59ZAHt5fmtlfp9ckHzDYHWBs0JjF9EQ2zcbnUOX6+NtL4B0JwP5aAEBPH9nnbWAbJDsnYRCJ/TIVHvkixLED+TkdA/fuS3RMZAa6vu76tuGsircyKu1k= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7115.eurprd08.prod.outlook.com (2603:10a6:10:2c8::5) by DU0PR08MB9249.eurprd08.prod.outlook.com (2603:10a6:10:418::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.36; Tue, 27 Feb 2024 16:41:35 +0000 Received: from DB9PR08MB7115.eurprd08.prod.outlook.com ([fe80::c475:541c:47b1:eb40]) by DB9PR08MB7115.eurprd08.prod.outlook.com ([fe80::c475:541c:47b1:eb40%6]) with mapi id 15.20.7316.034; Tue, 27 Feb 2024 16:41:35 +0000 Message-ID: <45ac2d54-21df-486c-a085-0a6c1f37a323@arm.com> Date: Tue, 27 Feb 2024 16:41:32 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] calls: Fix up TYPE_NO_NAMED_ARGS_STDARG_P handling [PR107453] Content-Language: en-GB To: Jakub Jelinek , "Joseph S. Myers" , Richard Biener , Jeff Law Cc: gcc-patches@gcc.gnu.org, Alexandre Ferreira , =?UTF-8?Q?Torbj=C3=B6rn_SVENSSON?= References: From: Richard Earnshaw In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0527.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2c5::11) To DB9PR08MB7115.eurprd08.prod.outlook.com (2603:10a6:10:2c8::5) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB7115:EE_|DU0PR08MB9249:EE_|AM4PEPF00027A5F:EE_|AS2PR08MB9920:EE_ X-MS-Office365-Filtering-Correlation-Id: 74779ad8-f385-4c0a-fef0-08dc37b2fdcf x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: mhRbPJPvi9F8LG99dKDgRlZ/1lCDOEwQ4A9IDtUyZlIBjLr7XfZtEAOAFlZwUQRoYFl50ra2eTBKpxrJCOAaka7gq4is0smOZ5eEmf210EHR6s9Qnqo8AAfvZK/SxLeLvm4BdsticAhRyDkmAeXeMzC9hcEsIu3GchTG/CJ4Km/8t3xPhUWyhPEz5o52ldbNUf5tuSkWuGgCO9NUQ0tXQxYCp9lHRv0DsGFBxMcV4h0dlOXM4R/Fx6YTyitkaNoLsTbv+97pzSRldQPyK8r5z3DE4amx9yARjGi6tBKzIH4k52n+CUZA8PuH4/OfHWW2N5q1aNaNFBlz8DWFkRNUAn3+RtgpIBjMN4ffOm3CWzzOErARGSYJytVL51hxqQWtu0/NHsx1P3LJX4WGNeoTrwd6XeTVvgtTxLzpb5Aq+IJKauOFrhI387vOyIAif1GC/8DFYi9VQfQ35oVPboyg9ZruRlVwQaEzyNDrOzZAlHOF6G3pKGH+1pAG7rkRafRDGopFtqywKJXg8nlkl84TGjOzwkQF6ONA2Hja96idNLjJpT/G4kQ3hAm8O0M4YoPPLUMo7shaAu9hWDByvpomlFrgnJ+HY4FUD7k8nPzoY3nsZ9OFCJsPqMO+Kf3Etk5e X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7115.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9249 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A5F.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: d223df90-2d4d-4b4a-ab80-08dc37b2f602 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ronbEPMlHJ257GPx07UTudCKAsjKQPURaumeq5lEvcZ6WqiAsNwgTIca4/n0K7bJltBxhGPpKUMDuhcs7F5h6Xi9zWd/8HoLwwVuwMRnyi0oeCIB7QB7q4C3cng0BpbTMLbbZVTxAM5+ehDBxi41eWnavEHs2hUvmprF1W8aM2Ip45zgBx/OKmAbx5H2Lmc1F6m5kn0HxIIX0AshG3EblRRaw9hXUc3AUxTTwx7OUVBcp0CaPGGXUXHsPfe/vEWXQ1tk5yyKvB3MejoFRbAClYjA+1YNgsNVe4lSCD0KDlfUGXV9sng74jf81YalLEqAuJvrDoN+JJ9pyO5Nq7VXpka+LV6/i3yV1JiqUsA0mvSyFFjc0WrdPHj4Ixnc4qRJZJQtz8trSyN0nl/Qj/TMj7Lmd41THX3627VZ+l6SQ3C30Jv/WmZmrjcsb3LbDf1kUf6MwDc1Zmmh/lIyy4vuBeKW2cBdDgf4lbm4CTizi0P1p/WQegNdJ5UTubJzrwqZnMt2CuvpnzGkdmGvTWqpuAlwyy0J6yxykC/EHokL6IgAVctyXRN09qjOrWlaS6y6yC3fCc2i5xQV4ZM87a3ELPOQHndundZs3APo6+u8RjXFhIRmQP/8dsYfnbR3IBFMmDmP3dlqb2nlXR81CXkQyQYLfJOw//7OfWMoYAUpAqmEXO9FZudjBCa0kQkOiSbnaawnOvLil0t6+KOOJ93ZQLEtROAksAxcG4Z5HKVPits/pIBUFcTQsfFH2QCEUX0s X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230031)(82310400014)(36860700004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2024 16:41:48.0959 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 74779ad8-f385-4c0a-fef0-08dc37b2fdcf X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A5F.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9920 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 09/01/2023 10:32, Jakub Jelinek via Gcc-patches wrote: > Hi! > > On powerpc64le-linux, the following patch fixes > -FAIL: gcc.dg/c2x-stdarg-4.c execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -O0 execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -O1 execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -O2 execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -O3 -g execution test > -FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c -Os execution test > The problem is mismatch between the caller and callee side. > On the callee side, we do: > /* NAMED_ARG is a misnomer. We really mean 'non-variadic'. */ > if (!cfun->stdarg) > data->arg.named = 1; /* No variadic parms. */ > else if (DECL_CHAIN (parm)) > data->arg.named = 1; /* Not the last non-variadic parm. */ > else if (targetm.calls.strict_argument_naming (all->args_so_far)) > data->arg.named = 1; /* Only variadic ones are unnamed. */ > else > data->arg.named = 0; /* Treat as variadic. */ > which is later passed to the target hooks to determine if a particular > argument is named or not. Now, cfun->stdarg is determined from the stdarg_p > call, which for the new C2X TYPE_NO_NAMED_ARGS_STDARG_P function types > (rettype fn (...)) returns true. Such functions have no named arguments, > so data->arg.named will be 0 in function.cc. But on the caller side, > as TYPE_NO_NAMED_ARGS_STDARG_P function types have TYPE_ARG_TYPES NULL, > we instead treat those calls as unprototyped even when they are prototyped > - /* If we know nothing, treat all args as named. */ n_named_args = num_actuals; > in 2 spots. We need to treat the TYPE_NO_NAMED_ARGS_STDARG_P cases as > prototyped with no named arguments. > > Bootstrapped/regtested on x86_64-linux, i686-linux, powerpc64le-linux (where > it fixes the above failures), aarch64-linux and s390x-linux, ok for trunk? > > 2023-01-09 Jakub Jelinek > > PR target/107453 > * calls.cc (expand_call): For calls with > TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args. > Formatting fix. This one has been festering for a while; both Alexandre and Torbjorn have attempted to fix it recently, but I'm not sure either is really right... On Arm this is causing all anonymous arguments to be passed on the stack, which is incorrect per the ABI. On a target that uses 'pretend_outgoing_vararg_named', why is it correct to set n_named_args to zero? Is it enough to guard both the statements you've added with !targetm.calls.pretend_outgoing_args_named? R. > > --- gcc/calls.cc.jj 2023-01-02 09:32:28.834192105 +0100 > +++ gcc/calls.cc 2023-01-06 14:52:14.740594896 +0100 > @@ -2908,8 +2908,8 @@ expand_call (tree exp, rtx target, int i > } > > /* Count the arguments and set NUM_ACTUALS. */ > - num_actuals = > - call_expr_nargs (exp) + num_complex_actuals + structure_value_addr_parm; > + num_actuals > + = call_expr_nargs (exp) + num_complex_actuals + structure_value_addr_parm; > > /* Compute number of named args. > First, do a raw count of the args for INIT_CUMULATIVE_ARGS. */ > @@ -2919,6 +2919,8 @@ expand_call (tree exp, rtx target, int i > = (list_length (type_arg_types) > /* Count the struct value address, if it is passed as a parm. */ > + structure_value_addr_parm); > + else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)) > + n_named_args = 0; > else > /* If we know nothing, treat all args as named. */ > n_named_args = num_actuals; > @@ -2957,6 +2959,8 @@ expand_call (tree exp, rtx target, int i > && ! targetm.calls.pretend_outgoing_varargs_named (args_so_far)) > /* Don't include the last named arg. */ > --n_named_args; > + else if (TYPE_NO_NAMED_ARGS_STDARG_P (funtype)) > + n_named_args = 0; > else > /* Treat all args as named. */ > n_named_args = num_actuals; > > Jakub >