From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF40E45E60; Tue, 10 Dec 2024 00:21:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 826B7402D5; Tue, 10 Dec 2024 00:21:09 +0100 (CET) Received: from mx0a-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 29D9A402D6 for ; Tue, 10 Dec 2024 00:21:08 +0100 (CET) Received: from pps.filterd (m0431384.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4B9H4Ita031750; Mon, 9 Dec 2024 15:21:07 -0800 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 43e4md8pyx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 Dec 2024 15:21:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tSmncYkaj7S/6UYcL1ExXlm1x3UCizLZMD7xylZTLv+WbnrhMYBAqiA2RytIaaOQ2H24zcZyAfNYgVYW44Vyg5DXHR5NOtQirs8dFXtlASCeV/l1dnmJ859lDkhmM6svtx1jnRcZxDpaRZjojKDd2jGzO+D1Jc+3eD8FaB/C2cDcF6WEcaNJiiQdJGSbqRREDVfJAfouNrZDbhDrIhzM0wgl8Wp9bLxfaKAJnkHbbBnUESyhJdVIZiycvUuC9DOfKKMkd7jaahVZRRidiFKp29msLiku/YORYYHk5OnfZ1AYNXiQtVe4DYbZilebNY3iFLi7UvU4O4x3Ox09EYPyQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=kpGz7MKc20/VlkfRpilyrXyT+ebuBmRGtO0YyANpNxI=; b=gjaOGHf9tiMKvfrjB3I7dWBdWn30KfeHqWZnV1ofI3riDs//50aP8NwamE1EWdpO9W4cuLopq3+rOXsIHOZCS3FDSmmNpTQ9brNbpL+d2f1UW0SftqzUrTcv2pXzIeNR12zTKvspPNPsYVZZVbrIZM3du6FpFtgkoxhoUHnduHUgEjC/9smoYnZMIaEAh942ttOJCJ0kIcMBkBDmMsFw/1IkgSxYhNU6rlq6eviaoDKZxWRilr66A4WYC0KZMZWSte7GYanSwfNBEzupdA8Ad+RjVUfCWL5ghUOcf07yMofhd468hsShH03FFAvhucbwsh9fVHbu7r/kKtzleRMGhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kpGz7MKc20/VlkfRpilyrXyT+ebuBmRGtO0YyANpNxI=; b=PBGbgIwGG9wreZ08Wdvh1Iyg/OJTBbfcvekLFqzYq+rmTlPZ2UT3apgstLl0wA0DenR1eMbGSBqv6K+x8R/sFgizrP4MhgWpbI4/0/S6+o4GEVKrKRj3ureC2ChA4a7KzNPVlQ/XEfkVT6LPyzUmBQQlgOVSfaDQ+n0D9aQe/z8= Received: from BY3PR18MB4785.namprd18.prod.outlook.com (2603:10b6:a03:3cc::18) by SJ0PR18MB4510.namprd18.prod.outlook.com (2603:10b6:a03:3ae::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.18; Mon, 9 Dec 2024 23:21:03 +0000 Received: from BY3PR18MB4785.namprd18.prod.outlook.com ([fe80::4f9f:e101:dad7:c576]) by BY3PR18MB4785.namprd18.prod.outlook.com ([fe80::4f9f:e101:dad7:c576%4]) with mapi id 15.20.8230.016; Mon, 9 Dec 2024 23:21:03 +0000 From: Jerin Jacob To: Bruce Richardson , Andre Muezerie , Chengwen Feng CC: Kevin Laatz , "dev@dpdk.org" Subject: RE: [EXTERNAL] Re: [PATCH 1/2] lib/dmadev: eliminate undefined behavior Thread-Topic: [EXTERNAL] Re: [PATCH 1/2] lib/dmadev: eliminate undefined behavior Thread-Index: AQHbSjoKGHwqq3Gh9kidqC0tLeuAEbLejC+Q Date: Mon, 9 Dec 2024 23:21:03 +0000 Message-ID: References: <1733513273-25550-1-git-send-email-andremue@linux.microsoft.com> <1733513273-25550-2-git-send-email-andremue@linux.microsoft.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-Mentions: fengchengwen@huawei.com X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY3PR18MB4785:EE_|SJ0PR18MB4510:EE_ x-ms-office365-filtering-correlation-id: 674660be-eee5-4c54-9e58-08dd18a826a3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?RjBWcHJ4UVVyT01tSjFSTXhYb0ZqUjdydzF0LzVEMm1sM3kyOTYwVWxsaTRu?= =?utf-8?B?Z0F1a2lKbURmMzBIS0QzYllGQW1CdEpCejQyZEdaN1RvVWtLWEttWUppTVll?= =?utf-8?B?WUJNUUlqSWlWUXBSaHlyK21MdVAxSnY4eHVzbUNybHpwOHlHM2Q2SDViOWlT?= =?utf-8?B?WTRPUjdCRTMybVlYR1FWYld6YjlBL21RaHMwMnltVmdJOS8rbmNaVmNZRHl6?= =?utf-8?B?MllrZGs4Vy9tcUx6dWRyNlhOL3RheE85dVpuWm05SU9uM2tZL0Vkb3ZKVnZl?= =?utf-8?B?dmphZVlDeXlLYzZwVFNLNURDKzMrTEo4QTFUenVyTUd5aXdSOWowcm8zMmgz?= =?utf-8?B?a3RmTHVESmkrd0cyQ2JHTmo0TkMxSDFNUUE4R3ZmSDdBdEtqWDJwdk1BakRK?= =?utf-8?B?Y1k5Tjhhc21KZ3o2S3V3UXdqemlhZzZSNCtvWXl4UmpRMzRpazNGdGR4V3ZK?= =?utf-8?B?MTQ5WXV4MXBBYXZRaFBSUCtoTHlVRURMRWNkTmRNSUwvc1BaYVY0ekJQU0gv?= =?utf-8?B?bVFzcWdxbW03WlN2NzlVanBtSkN6K2E0OVU2U0NTaHVMQXFNSWdWc2Z5ZTdK?= =?utf-8?B?VTZQaGcrUkJOelpkNVdoZEY0WVBONUNOZGc2T2NuejBoaHNLRE40ZEFhMGFF?= =?utf-8?B?YlZuRVlWUmlDeHVjZHJveFJGcVBzanJhWU9CSmU2SEp6K1VQeEZsNmFWU0R6?= =?utf-8?B?ejYybm1sakVsbWlMK24yZ3VHeHVVVUJpWmFpV3BFR3pYVkZES203RUNUcit6?= =?utf-8?B?NzVCZzUvOVJaRW1USXY5aDVwUk0zdlJ0NXptcjJxOFc0ci9oV0kvQ21sYm1G?= =?utf-8?B?OFI4T1JFTkZzZTFsNnZOaTRsQlU5QXNnenNPc1FKdlVRME1IMFlINjlkb0FS?= =?utf-8?B?YTY1K3lROXZWUi9UVDJUd0VGeXNHb0t2NkZvMnhFN2EwbExrWlJYTjZTSUtC?= =?utf-8?B?c3MraUwvUFo1YVY5NFVrN3hkWmNvM1R6emprcDR3N2QvQXBuZW50em9vQS9l?= =?utf-8?B?SmZmYjhKb3pVTGZWVGVrVDZWVkVuNHl0NC9OQjhQeGpicE9NKzRGc2RJSFZ3?= =?utf-8?B?Z3AxZEtrajJBcnhHZUlCbGw2cXcwM0VkaGdLcjJ0dDZlTlRNQ0tuNExzUVY5?= =?utf-8?B?cEtTaVlVMmpDVHZ6S01jSG5sMFh1QXdmRkIyYkNHbDZXeGc1M2I0S3ZEU2lL?= =?utf-8?B?dngzK1l0T1ZPaHlVSVZNbjlhU0c2MU1CU0tnV0Z2TDZ4L2dCVjNMRVUrelht?= =?utf-8?B?ZXFVUGNHQk8ycHFmNFBrZVAwWSsyaXRsL1djNjBPMG1RUENUOXJhejVYWjND?= =?utf-8?B?eWFTMmVkSzlCcFZyb0cwY0Vld0JKS1pHanZHVUsrNVBhVS9hN0JRRE9FbGRa?= =?utf-8?B?dDFEN0tRTkJtazRmNFNaREVGSWNqZStCeHlWSk5EUXlVN3ZzTWYvSGxqY21G?= =?utf-8?B?SUhtblh0dWxBWGRVV05ZWnl5dWIreTZLYVpVNlhPMUFNblY4L0tEckxxMWlr?= =?utf-8?B?MXUrb2V4bnlST3lKSkwyZ1RhMVBJMitZS2h5R2gzY2hmekd4dFgydnR6U3Va?= =?utf-8?B?SS9qNFN5ZE9laHd3eVRJWVEyTHZmVkpTVHBZeUhtanFMcXZHYjZ4L2h0NzZZ?= =?utf-8?B?Y0oxQjZGV1FLd3ppa3F4R1c0dmw3ZUFRVTVNdEI2MDZ0bjBDL0JlUk80cno0?= =?utf-8?B?aEd6cFpiTlprRlZSanRxZWl4eWJBUEg0TFpTY25oc3JTNy9pUWVkcmphM21z?= =?utf-8?B?MFRDd1pEMU9tN3E4TlVtbDdIVnJCYzVYNkVQZ1lXUjBTSUhGMzQ5U2tDbDNO?= =?utf-8?Q?PZyT1eqGi7juxdMC203VDj8imwtnmcA0mly5g=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY3PR18MB4785.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QUo2ZEF6RGNLT1FqZXlEUVp3U3VOT2JudldrZ2NVTjBMNG9GbGJtVWNxamZu?= =?utf-8?B?ZmJVbkM4aklqWWJVVUg1ZzBoWDNDY1RlTm1meEJ3djlPa2h4TEpBWHdwYjZn?= =?utf-8?B?S0tYYzFZMXpOaWVaVUlJL1dQaEtoajhhdk9hak83VzljQkg5OFRUaUVEZWFz?= =?utf-8?B?WUlTb1hOelhBenNNS2VkSXdMQmhFejZxMm04NTdzdjZuZTMxdnN1TGQvR3o5?= =?utf-8?B?ZnF1U1gvVXFaRXpUU3Ziazh5c2RMQ29NQzVyQm5mRlJtOERIZGlFbEVVTVJk?= =?utf-8?B?YWtzeWlqQVN5WkZyS3NQWldtRnZTMmpaWlB2cHdyV2wrS044dWF2VVBiangz?= =?utf-8?B?eVhHRzc0NmpQYmhYNnJlWFNMcTNEbDZoYXZSZVk4TW9BM01BVkFLajNJSExE?= =?utf-8?B?Nlp3R0NKVjlFeENuWCtPQ3NubGM1eDFUUEZSOG44MXJWMWpDN0hSaU9RdHBX?= =?utf-8?B?U2Nad1d1UXpzbzU1TktVNzJhNE9rS0VFQzhqbkI0RXd1WDFZYmZ3QStoalBu?= =?utf-8?B?K0pFL3JmQ2s4L1AzWVNrU0d1V0Z0OXo1eWM4SlB5QVc2UkxQTGZMQ1Q0SDBO?= =?utf-8?B?WFJ1ek9XU2NadFZHYS9Gb0FPT2JwNktpczFCS1ZhZkxUbkh6VzM1NWtKeGpq?= =?utf-8?B?engrcFVIdGJtRE9hcmkxL0VpdXFDZFAyZ3VUcnlneHhkbmkySUMvaDNCd2lr?= =?utf-8?B?QUFkc29XNXBMODFnWXZmQWZNOXFxdk9FbFZsTmtLTGg0Y0FoazBjOVJJZytV?= =?utf-8?B?TmRYTURVcklWc3E2T3NFN09PejZ1Z2lqcnQxRU5pM1IwVkNobS9KZG9MUUMx?= =?utf-8?B?VXdZV0FHdk11M0szVkdtRnhHUit1KzdrdlRkNXNGNVB0MWRveiszdEFpdEIv?= =?utf-8?B?NXdkT3BhR2JtTXpaV0E3Mm9pSGY5Um1NZURkNk9SWTFnaWlDUFdyTW1Samgy?= =?utf-8?B?NTBpanZzUzFNSkdJOVp5MXpsZ1ltZVlOa3lJVXE2UFpkUWw5U3VwMDI4UUxE?= =?utf-8?B?MmlyTnBGM1hNdDYrN0NZdEJidWlkcERtbWNPYzVwSzRMOHp2WFM1aWY3ai9u?= =?utf-8?B?dWllTTdxTDdSYkloTHZBN1VWUXVSWUZOZlcwQ1NQejEzcDFqTEdTajViUU8y?= =?utf-8?B?R3RqZ0pLamxmaUR4Uy9iT2FvcmhSTE9EM0JwQUdOaGZpWFE5Y0szT3VMMVRz?= =?utf-8?B?K01EblljQWFZSkwrQWp3TW5sS0k3WStoZGx5SmhoMjU5UVU1YXpxWXZPSFpO?= =?utf-8?B?Qmo0OGRtVDhlNXlHWG1UUUtkRFVxYnM1bWtMbGNLblpNaWxneWpQamNRUVQ3?= =?utf-8?B?UkVpWkNEeExRTWl1MUp6NXdkN2ZrZUZDQktXVVJ0K0diV3F3aCsxbk5DNW9S?= =?utf-8?B?WWM4cG8vOEgzRlhUeU9qSy9la1VKazRFWTNSd1JXcFcrUjJjbzMzbDdYazFj?= =?utf-8?B?Z0NwUCtERTMxNndOOFAwNnhKNk9MbnhTMmF0Z3M5SzhlLzVoSHpuSXVxMDkv?= =?utf-8?B?b2Nla3I2ZGhtaDZHNFQrckdyakxSVDZhUEJYQ245ZzlHWWpDbm5zRlo2aVZq?= =?utf-8?B?dTNMQUx5S3dheHRNZEdYV1JMNWRYRW9UaGh1ZFN1Zm1WRjR1dlFzd2F3Y20y?= =?utf-8?B?V1p0dTg5azBHcHNsNklBdFIvVXRQZlFhcHg4SGJxbndad25xeHhOaWtReGZ0?= =?utf-8?B?M0F1WVhFaFhIRXlhMkVKejdwV2w3d2ZQbVdSRWFQNFFjb25YUERwRGpqOUhR?= =?utf-8?B?dldkdmJQbFViZUhjRll5ZTNWQXVhY1RlZzZpMVN6bXR4d213MkZOUE1NUmJ1?= =?utf-8?B?c2YvK1o2a2dQekVPUVBORVdhbEFkVGw5UDcvWTZwWXhvd1lIU1V4VHp5VHpv?= =?utf-8?B?aEl2MlNxY1JuY3Fld2RhZU5yRzFDd1pERkJaL0RLbUM2L0NtYXdURDhjSkRo?= =?utf-8?B?QVZUSnVwYXpUM092Rnp6czA5SkhFdnpDQWlvYWR1azJRVkRmcDJXdDE0MFRk?= =?utf-8?B?M3pjN1EvZ1E5MnJPSkR6eVo2WEhaS3BNWVdOU0lxL3lOOFZkTmVsQ3E0QlI1?= =?utf-8?B?OE16R2VrNk9Rb0JJQVZPbi84MVBLZlc1YWlDSWIyWm9oWjhjSWh1NEVTQlBh?= =?utf-8?Q?LQJmJHROGsgvXTclqKesM97mP?= MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR18MB4785.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 674660be-eee5-4c54-9e58-08dd18a826a3 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Dec 2024 23:21:03.7805 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WroU8B5cXFjlvrK8EDIsx9CazbXpgYBusYnkvcuk6C7CEP6X3kZJUfScAT/aaAqV50cXwyp55Hw2WXcpaB1WDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR18MB4510 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: J8w0-NisxdPWOVgINwtkuq_h_0KSJePt X-Proofpoint-ORIG-GUID: J8w0-NisxdPWOVgINwtkuq_h_0KSJePt X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.687,Hydra:6.0.235,FMLib:17.0.607.475 definitions=2020-10-13_15,2020-10-13_02,2020-04-07_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Bruce Richardson > Sent: Monday, December 9, 2024 4:58 AM > To: Andre Muezerie ; Jerin Jacob > > Cc: Chengwen Feng ; Kevin Laatz > ; dev@dpdk.org > Subject: [EXTERNAL] Re: [PATCH 1/2] lib/dmadev: eliminate undefined behav= ior >=20 > On Fri, Dec 06, 2024 at 11:=E2=80=8A27:=E2=80=8A52AM -0800, Andre Muezeri= e wrote: > MSVC > compiler issues warnings like the one below: > > > lib\dmadev\rte_dmadev_trace_fp.=E2=80=8Ah(36): > warning C5101: use of pr= eprocessor > directive in > function-like macro=20 > On Fri, Dec 06, 2024 at 11:27:52AM -0800, Andre Muezerie wrote: > > MSVC compiler issues warnings like the one below: > > > > lib\dmadev\rte_dmadev_trace_fp.h(36): > > warning C5101: use of preprocessor directive in > > function-like macro argument list is undefined behavior > > > > Indeed, looking at C99 section 6.10.3 Macro replacement, paragraph 11: > > "If there are sequences of preprocessing tokens within the list of > > arguments that would otherwise act as preprocessing directives, the > > behavior is undefined." > > > > The fix proposed in this patch moves the ifdef to the outside. > > This results in no perf impact, but some lines end up being > > duplicated, which seems to be a reasonable trade-off. > > > > Signed-off-by: Andre Muezerie > > --- > > lib/dmadev/rte_dmadev_trace.h | 62 ++++++++++++++++++++++++++++-- > -- > > lib/dmadev/rte_dmadev_trace_fp.h | 52 +++++++++++++++++++++++---- > > 2 files changed, 102 insertions(+), 12 deletions(-) > > > > diff --git a/lib/dmadev/rte_dmadev_trace.h > > b/lib/dmadev/rte_dmadev_trace.h index be089c065c..264a464928 100644 > > --- a/lib/dmadev/rte_dmadev_trace.h > > +++ b/lib/dmadev/rte_dmadev_trace.h > > @@ -19,13 +19,12 @@ > > extern "C" { > > #endif > > > > +#ifdef _RTE_TRACE_POINT_REGISTER_H_ > > RTE_TRACE_POINT( > > rte_dma_trace_info_get, > > RTE_TRACE_POINT_ARGS(int16_t dev_id, struct rte_dma_info > *dev_info), > > -#ifdef _RTE_TRACE_POINT_REGISTER_H_ + @Chengwen Feng This kind of patten is not used other places like ethdev traces, Why we nee= d this kind of pattern in dmadev? Looks like, it can be fixed by caller of this function by initializing stru= ct rte_dma_info. So may not need a fixup patch to begin with > > struct rte_dma_info __dev_info =3D {0}; > > dev_info =3D &__dev_info; > > -#endif /* _RTE_TRACE_POINT_REGISTER_H_ */ > > rte_trace_point_emit_i16(dev_id); > > rte_trace_point_emit_string(dev_info->dev_name); > > rte_trace_point_emit_u64(dev_info->dev_capa); > > @@ -37,15 +36,30 @@ RTE_TRACE_POINT( > > rte_trace_point_emit_u16(dev_info->nb_vchans); > > rte_trace_point_emit_u16(dev_info->nb_priorities); > > ) > > +#else > > +RTE_TRACE_POINT( > > + rte_dma_trace_info_get, > > + RTE_TRACE_POINT_ARGS(int16_t dev_id, struct rte_dma_info > *dev_info), > > + rte_trace_point_emit_i16(dev_id); > > + rte_trace_point_emit_string(dev_info->dev_name); > > + rte_trace_point_emit_u64(dev_info->dev_capa); > > + rte_trace_point_emit_u16(dev_info->max_vchans); > > + rte_trace_point_emit_u16(dev_info->max_desc); > > + rte_trace_point_emit_u16(dev_info->min_desc); > > + rte_trace_point_emit_u16(dev_info->max_sges); > > + rte_trace_point_emit_i16(dev_info->numa_node); > > + rte_trace_point_emit_u16(dev_info->nb_vchans); > > + rte_trace_point_emit_u16(dev_info->nb_priorities); > > +) > > +#endif /* _RTE_TRACE_POINT_REGISTER_H_ */ > > >=20 > +Jerin >=20 > I'm unfortunately not familiar with the internals of the traceing library. > Can someone perhaps explain (and maybe add in the code as a comment), why > we need conditional compilation here? Specifically, when would > _RTE_TRACE_POINT_REGISTER_H_ be defined, and when not defined? (or why > not > defined?) How does having it defined or not affect the expansion of the m= acro > here? >=20 > Thanks, > /Bruce