From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.8010.1579509627939031220 for ; Mon, 20 Jan 2020 00:40:28 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: zhijux.fan@intel.com) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jan 2020 00:40:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,341,1574150400"; d="dat'59?scan'59,208,59";a="226993270" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga003.jf.intel.com with ESMTP; 20 Jan 2020 00:40:27 -0800 Received: from shsmsx605.ccr.corp.intel.com (10.109.6.215) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 20 Jan 2020 00:40:26 -0800 Received: from shsmsx602.ccr.corp.intel.com (10.109.6.142) by SHSMSX605.ccr.corp.intel.com (10.109.6.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 20 Jan 2020 16:40:24 +0800 Received: from shsmsx602.ccr.corp.intel.com ([10.109.6.142]) by SHSMSX602.ccr.corp.intel.com ([10.109.6.142]) with mapi id 15.01.1713.004; Mon, 20 Jan 2020 16:40:24 +0800 From: "Fan, ZhijuX" To: "devel@edk2.groups.io" CC: "Gao, Liming" , "Feng, Bob C" Subject: [PATCH] BaseTools:ECC fails to detect function header comments issue Thread-Topic: [PATCH] BaseTools:ECC fails to detect function header comments issue Thread-Index: AdXPbUDwIKhChJaDS5ux2Bgv/7xAxQ== Date: Mon, 20 Jan 2020 08:40:24 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: zhijux.fan@intel.com X-Groupsio-MsgNum: 53395 Content-Type: multipart/mixed; boundary="_000_f2b155bdb7de40cd9711956b63517702intelcom_" Content-Language: en-US --_000_f2b155bdb7de40cd9711956b63517702intelcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=3D1523 When the keyword after @param doesn't match the actual function parameter name, ECC doesn't detect such issue The patch is going to fix this issue Cc: Liming Gao Cc: Bob Feng Signed-off-by: Zhiju.Fan --- BaseTools/Source/Python/Ecc/c.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/Ecc/c.py b/BaseTools/Source/Python/Ecc= /c.py index a30122a45f..e42463952d 100644 --- a/BaseTools/Source/Python/Ecc/c.py +++ b/BaseTools/Source/Python/Ecc/c.py @@ -2554,6 +2554,20 @@ def CheckGeneralDoxygenCommentLayout(Str, StartLine,= ErrorMsgList, CommentId=3D -1 ErrorMsgList.append('Line %d : @retval appear before @param ' % St= artLine) PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'in Comment, @r= etval appear before @param ', TableName, CommentId) =20 +def CheckParamName(ParamName, Tag): + ParamList =3D Tag.split() + if len(ParamList) > 1: + ParamList.pop(0) + for Item in ParamList: + if Item.find('[') > 0 and Item.find(']') > 0: + continue + if ParamName !=3D Item.strip(): + return True + else: + return False + else: + return True + def CheckFunctionHeaderConsistentWithDoxygenComment(FuncModifier, FuncHead= er, FuncStartLine, CommentStr, CommentStartLine, ErrorMsgList, CommentId=3D= -1, TableName=3D''): =20 ParamList =3D GetParamList(FuncHeader) @@ -2608,7 +2622,7 @@ def CheckFunctionHeaderConsistentWithDoxygenComment(F= uncModifier, FuncHeader, Fu PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION= _HEADER, 'in Comment, <%s> does NOT have %s ' % ((TagPartList[0] + ' ' + Ta= gPartList[1]).replace('\n', '').replace('\r', ''), '[' + InOutStr + ']'), T= ableName, CommentId) =20 =20 - if Tag.find(ParamName) =3D=3D -1 and ParamName !=3D 'VOID' and= ParamName !=3D 'void': + if (Tag.find(ParamName) =3D=3D -1 or CheckParamName(ParamName,= Tag)) and ParamName !=3D 'VOID' and ParamName !=3D 'void': ErrorMsgList.append('Line %d : in Comment, <%s> does NOT c= onsistent with parameter name %s ' % (CommentStartLine, (TagPartList[0] + '= ' + TagPartList[1]).replace('\n', '').replace('\r', ''), ParamName)) PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'in Com= ment, <%s> does NOT consistent with parameter name %s ' % ((TagPartList[0] = + ' ' + TagPartList[1]).replace('\n', '').replace('\r', ''), ParamName), Ta= bleName, CommentId) Index +=3D 1 --=20 2.14.1.windows.1 --_000_f2b155bdb7de40cd9711956b63517702intelcom_ Content-Disposition: attachment; filename="winmail.dat" Content-Transfer-Encoding: base64 Content-Type: application/ms-tnef; name="winmail.dat" eJ8+IlAsAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEJgAEAIQAAAEFERUE5MDY1 NDMzNzk4NDQ5N0RFRjk4OTE4QjEyRjUxACwHAQ2ABAACAAAAAgACAAEFgAMADgAAAOQHAQAUAAgA KAAYAAEASQEBIIADAA4AAADkBwEAFAAIACgAGAABAEkBAQiABwAYAAAASVBNLk1pY3Jvc29mdCBN YWlsLk5vdGUAMQgBBIABAEUAAABbUEFUQ0hdIEJhc2VUb29sczpFQ0MgZmFpbHMgdG8gZGV0ZWN0 IGZ1bmN0aW9uIGhlYWRlciBjb21tZW50cyBpc3N1ZQCCGAELgAEAIQAAAEFERUE5MDY1NDMzNzk4 NDQ5N0RFRjk4OTE4QjEyRjUxACwHAQOQBgBgFwAASQAAAAIBfwABAAAALQAAADxmMmIxNTViZGI3 ZGU0MGNkOTcxMTk1NmI2MzUxNzcwMkBpbnRlbC5jb20+AAAAAAsAHw4AAAAAAgEJEAEAAADxBQAA 7QUAANMMAABMWkZ1ptcPOmEACmZiaWQEAABjY8BwZzEyNTIA/gND8HRleHQB9wKkA+MCAARjaArA c2V0MCDvB20CgwBQEU0yCoAGtAKAln0KgAjIOwliMTkOwL8JwxZyCjIWcQKAFWIqCbBzCfAEkGF0 BbIOUANgc6JvAYAgRXgRwW4YMF0GUnYEkBe2AhByAMB0fQhQbhoxECAFwAWgG2RkmiADUiAQIhey XHYIkOR3awuAZDUdUwTwB0ANF3AwCnEX8mJrbWsGcwGQACAgQk1fQuBFR0lOfQr8AfEL8REfsFo6 aAJAcHM6wC8vYnVnegMQC2AkLnQHMG5vBaFlLgEFsGcvc2hvd19BIlEuY2dpPw3QPaIxDrAzXGwL gGUKgTklFFdoCfAcwCXwIGvYZXl3BbAcYGEBgBuxSkAKsWEcsGRvB5BuPicFQBsREcAmIwDQdHXT B0AccHVuKPBpAiAlBVcnYxIQG7FuKnEsGWBDHkMntwEAECAo8CBzde8ocQQBClAlDFQmQQqwKGJR BAAgZ28LgGccwG95HHBpeCYhLpEszwqAQzBjOiBMB3Au4kdhTS8wPCUQMXIuZzHQQFsLgBAgbCRA A3A+MKlCsG9iIEYJ8C8APAbgcmIkQC5mNGEyvxTAaRJnGFBkLRkwZi1iCnkxMFovoGp1LkbpA5E8 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 AC4AdABpAGEAbgBvAGMAbwByAGUALgBvAHIAZwAvAHMAaABvAHcAXwBiAHUAZwAuAGMAZwBpAD8A aQBkAD0AMQA1ADIAMwANAAoADQAKAFcAaABlAG4AIAB0AGgAZQAgAGsAZQB5AHcAbwByAGQAIABh AGYAdABlAHIAIABAAHAAYQByAGEAbQAgAGQAbwBlAHMAbgAnAHQAIABtAGEAdABjAGgAIAB0AGgA ZQAgAGEAYwB0AHUAYQBsACAAZgB1AG4AYwB0AGkAbwBuAA0ACgBwAGEAcgBhAG0AZQB0AGUAcgAg AG4AYQBtAGUALAAgAEUAQwBDACAAZABvAGUAcwBuACcAdAAgAGQAZQB0AGUAYwB0ACAAcwB1AGMA aAAgAGkAcwBzAHUAZQANAAoADQAKAFQAaABlACAAcABhAHQAYwBoACAAaQBzACAAZwBvAGkAbgBn ACAAdABvACAAZgBpAHgAIAB0AGgAaQBzACAAaQBzAHMAdQBlAA0ACgANAAoAQwBjADoAIABMAGkA bQBpAG4AZwAgAEcAYQBvACAAPABsAGkAbQBpAG4AZwAuAGcAYQBvAEAAaQBuAHQAZQBsAC4AYwBv AG0APgANAAoAQwBjADoAIAAAAAsAAIAIIAYAAAAAAMAAAAAAAABGAAAAABSFAAABAAAAHwAAgIYD AgAAAAAAwAAAAAAAAEYBAAAAHgAAAGEAYwBjAGUAcAB0AGwAYQBuAGcAdQBhAGcAZQAAAAAAAQAA AAwAAABlAG4ALQBVAFMAAAADAACACCAGAAAAAADAAAAAAAAARgEAAAAyAAAARQB4AGMAaABhAG4A ZwBlAEEAcABwAGwAaQBjAGEAdABpAG8AbgBGAGwAYQBnAHMAAAAAACAAAABIAACACCAGAAAAAADA AAAAAAAARgEAAAAiAAAATgBlAHQAdwBvAHIAawBNAGUAcwBzAGEAZwBlAEkAZAAAAAAAlTi6hmTe n0I0sAjXnYRkph8AAIATj/JB9IMUQaWE7ttaawv/AQAAABYAAABDAGwAaQBlAG4AdABJAG4AZgBv AAAAAAABAAAAKgAAAEMAbABpAGUAbgB0AD0ATQBTAEUAeABjAGgAYQBuAGcAZQBSAFAAQwAAAAAA HwD6PwEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAHwA3AAEAAACKAAAAWwBQAEEAVABD AEgAXQAgAEIAYQBzAGUAVABvAG8AbABzADoARQBDAEMAIABmAGEAaQBsAHMAIAB0AG8AIABkAGUA dABlAGMAdAAgAGYAdQBuAGMAdABpAG8AbgAgAGgAZQBhAGQAZQByACAAYwBvAG0AbQBlAG4AdABz ACAAaQBzAHMAdQBlAAAAAAAfAD0AAQAAAAIAAAAAAAAAAwA2AAAAAAACAXEAAQAAABYAAAAB1c9t QPAgqEKEloNLm7HYGC//vEDFAAAfAHAAAQAAAIoAAABbAFAAQQBUAEMASABdACAAQgBhAHMAZQBU AG8AbwBsAHMAOgBFAEMAQwAgAGYAYQBpAGwAcwAgAHQAbwAgAGQAZQB0AGUAYwB0ACAAZgB1AG4A YwB0AGkAbwBuACAAaABlAGEAZABlAHIAIABjAG8AbQBtAGUAbgB0AHMAIABpAHMAcwB1AGUAAAAA AB8ANRABAAAAWgAAADwAZgAyAGIAMQA1ADUAYgBkAGIANwBkAGUANAAwAGMAZAA5ADcAMQAxADkA NQA2AGIANgAzADUAMQA3ADcAMAAyAEAAaQBuAHQAZQBsAC4AYwBvAG0APgAAAAAAAwDeP59OAAAD ABMSAAAAAAIBAIATj/JB9IMUQaWE7ttaawv/AQAAAC4AAABIAGUAYQBkAGUAcgBCAG8AZAB5AEYA cgBhAGcAbQBlAG4AdABMAGkAcwB0AAAAAAABAAAAIgAAAAEACgAAAAQAAAAAAAAAFAAAAAAAAAAA AAAA/////wAAAAAAAAsAAIATj/JB9IMUQaWE7ttaawv/AQAAABwAAABIAGEAcwBRAHUAbwB0AGUA ZABUAGUAeAB0AAAAAAAAAAsAAIATj/JB9IMUQaWE7ttaawv/AQAAACgAAABJAHMAUQB1AG8AdABl AGQAVABlAHgAdABDAGgAYQBuAGcAZQBkAAAAAAAAAEAABzBz+QVCbc/VAQIBCwABAAAAEAAAAK3q kGVDN5hEl975iRixL1EDACYAAAAAAAsABgwAAAAAAgEQMAEAAABGAAAAAAAAACZ3vTk77DhJpKYV Pcule0IHAPrQ1+CuD6VNmH9uckNcr9UAAABEEV4AAKaTaDaIdmxLp0rT60eaTGQAAAlUwGAAAAAA AgETMAEAAAAQAAAAIKhChJaDS5ux2Bgv/7xAxQIBFDABAAAADAAAAOcAAAAeqNeoQgAAAB8A+D8B AAAAGAAAAEYAYQBuACwAIABaAGgAaQBqAHUAWAAAAB8AIkABAAAABgAAAEUAWAAAAAAAHwAjQAEA AAC4AAAALwBPAD0ASQBOAFQARQBMAC8ATwBVAD0ARQBYAEMASABBAE4ARwBFACAAQQBEAE0ASQBO AEkAUwBUAFIAQQBUAEkAVgBFACAARwBSAE8AVQBQACAAKABGAFkARABJAEIATwBIAEYAMgAzAFMA UABEAEwAVAApAC8AQwBOAD0AUgBFAEMASQBQAEkARQBOAFQAUwAvAEMATgA9AEYAQQBOACwAIABa AEgASQBKAFUAWABCADgANQAAAB8AJEABAAAABgAAAEUAWAAAAAAAHwAlQAEAAAC4AAAALwBPAD0A SQBOAFQARQBMAC8ATwBVAD0ARQBYAEMASABBAE4ARwBFACAAQQBEAE0ASQBOAEkAUwBUAFIAQQBU AEkAVgBFACAARwBSAE8AVQBQACAAKABGAFkARABJAEIATwBIAEYAMgAzAFMAUABEAEwAVAApAC8A QwBOAD0AUgBFAEMASQBQAEkARQBOAFQAUwAvAEMATgA9AEYAQQBOACwAIABaAEgASQBKAFUAWABC ADgANQAAAB8AMEABAAAAGAAAAEYAYQBuACwAIABaAGgAaQBqAHUAWAAAAB8AMUABAAAAGAAAAEYA YQBuACwAIABaAGgAaQBqAHUAWAAAAB8AOEABAAAAGAAAAEYAYQBuACwAIABaAGgAaQBqAHUAWAAA AB8AOUABAAAAGAAAAEYAYQBuACwAIABaAGgAaQBqAHUAWAAAAAMAWUAAAAAAAwBaQAAAAAADAAlZ AQAAAB8ACl0BAAAAKgAAAHoAaABpAGoAdQB4AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAA AAAAHwALXQEAAAAqAAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAA AAAfAACAH6TrM6h6LkK+e3nhqY5UswEAAAA4AAAAQwBvAG4AdgBlAHIAcwBhAHQAaQBvAG4ASQBu AGQAZQB4AFQAcgBhAGMAawBpAG4AZwBFAHgAAAABAAAAJAEAAEkASQA9AFsAQwBJAEQAPQA4ADQA NAAyAGEAOAAyADAALQA4ADMAOQA2AC0AOQBiADQAYgAtAGIAMQBkADgALQAxADgAMgBmAGYAZgBi AGMANAAwAGMANQA7AEkARABYAEgARQBBAEQAPQBEADUAQwBGADYARAA0ADAARgAwADsASQBEAFgA QwBPAFUATgBUAD0AMQBdADsAUABTAD0AVQBuAGsAbgBvAHcAbgA7AFYAZQByAHMAaQBvAG4APQBW AGUAcgBzAGkAbwBuACAAMQA1AC4AMQAgACgAQgB1AGkAbABkACAAMQA3ADEAMwAuADAAKQAsACAA UwB0AGEAZwBlAD0ASAA0ADsAVQBQAD0AMQAwADsARABQAD0AMQBDADUAAAAfAACAhgMCAAAAAADA AAAAAAAARgEAAAAaAAAAZABsAHAALQByAGUAYQBjAHQAaQBvAG4AAAAAAAEAAAAUAAAAbgBvAC0A YQBjAHQAaQBvAG4AAAAfAACAhgMCAAAAAADAAAAAAAAARgEAAAAYAAAAZABsAHAALQB2AGUAcgBz AGkAbwBuAAAAAQAAABIAAAAxADEALgAyAC4AMAAuADYAAAAAAB8AAICGAwIAAAAAAMAAAAAAAABG AQAAABgAAABkAGwAcAAtAHAAcgBvAGQAdQBjAHQAAAABAAAAGgAAAGQAbABwAGUALQB3AGkAbgBk AG8AdwBzAAAAAAACAQCACCAGAAAAAADAAAAAAAAARgEAAAA2AAAASQBuAFQAcgBhAG4AcwBpAHQA TQBlAHMAcwBhAGcAZQBDAG8AcgByAGUAbABhAHQAbwByAAAAAAABAAAAEAAAAIGbnaUU+0pMkTF2 XaCNp+FAAACACCAGAAAAAADAAAAAAAAARgAAAAC/hQAAcAHzQG3P1QELAACACCAGAAAAAADAAAAA AAAARgAAAACChQAAAAAAAAMADTT9PwAAHwAAgIYDAgAAAAAAwAAAAAAAAEYBAAAAIAAAAHgALQBt AHMALQBoAGEAcwAtAGEAdAB0AGEAYwBoAAAAAQAAAAIAAAAAAAAAHwAAgIYDAgAAAAAAwAAAAAAA AEYBAAAAIgAAAHgALQBvAHIAaQBnAGkAbgBhAHQAaQBuAGcALQBpAHAAAAAAAAEAAAAgAAAAWwAx ADAALgAyADMAOQAuADEAMgA3AC4AMwA2AF0AAAD86Q== --_000_f2b155bdb7de40cd9711956b63517702intelcom_--