ECC file license header and predicate expression check fix.
authorjlin16 <jlin16@c2973edb-eda0-4c78-bc6a-9341b269661f>
Mon, 8 Feb 2010 07:06:35 +0000 (07:06 +0000)
committerjlin16 <jlin16@c2973edb-eda0-4c78-bc6a-9341b269661f>
Mon, 8 Feb 2010 07:06:35 +0000 (07:06 +0000)
git-svn-id: https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/trunk/BaseTools@1852 c2973edb-eda0-4c78-bc6a-9341b269661f

Source/Python/Ecc/C.g
Source/Python/Ecc/ParserWarning.py
Source/Python/Ecc/c.py

index 7639763..70d9891 100644 (file)
@@ -1,3 +1,15 @@
+/* @file\r
+ This file is used to be the grammar file of ECC tool\r
+\r
+ Copyright (c) 2009 - 2010, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution.  The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+*/\r
 \r
 grammar C;\r
 options {\r
index 547360d..1874739 100644 (file)
@@ -1,3 +1,16 @@
+## @file\r
+# This file is used to be the warning class of ECC tool\r
+#\r
+# Copyright (c) 2009 - 2010, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+\r
 ## The exception class that used to report error messages when preprocessing\r
 #\r
 # Currently the "ToolName" is set to be "ECC PP".\r
index 9cf4c74..75ad456 100644 (file)
@@ -1,3 +1,16 @@
+## @file\r
+# This file is used to be the c coding style checking of ECC tool\r
+#\r
+# Copyright (c) 2009 - 2010, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+\r
 import sys\r
 import os\r
 import re\r
@@ -1221,6 +1234,16 @@ def GetVarInfo(PredVarList, FuncRecord, FullFileName, IsFuncCall = False, Target
                 Type = GetRealType(Type, TypedefDict, TargetType)\r
                 return Type\r
 \r
+def GetTypeFromArray(Type, Var):\r
+    Count = Var.count('[')\r
+    \r
+    while Count > 0:\r
+        Type = Type.strip()\r
+        Type = Type.rstrip('*')\r
+        Count = Count - 1\r
+\r
+    return Type\r
+\r
 def CheckFuncLayoutReturnType(FullFileName):\r
     ErrorMsgList = []\r
     \r
@@ -1933,6 +1956,7 @@ def CheckPointerNullComparison(FullFileName):
                     FuncReturnTypeDict[PredVarStr] = Type\r
                 if Type == None:\r
                     continue\r
+                Type = GetTypeFromArray(Type, PredVarStr)\r
                 if Type.find('*') != -1:\r
                     PrintErrorMsg(ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE, 'Predicate Expression: %s' % Exp, FileTable, Str[2])\r
 \r