]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/Expression.py
BaseTools: Add check for the string type whether is same
[mirror_edk2.git] / BaseTools / Source / Python / Common / Expression.py
index ff9271031b0e3351e441fdd4ff195212e1b64dd2..e398f7a034319fa9765f75aa8898f9f5fa54ea28 100644 (file)
@@ -297,8 +297,8 @@ class ValueExpression(BaseExpression):
                 else:\r
                     raise BadExpression(ERR_EXPR_TYPE)\r
             if isinstance(Oprand1, type('')) and isinstance(Oprand2, type('')):\r
-                if (Oprand1.startswith('L"') and not Oprand2.startswith('L"')) or \\r
-                    (not Oprand1.startswith('L"') and Oprand2.startswith('L"')):\r
+                if ((Oprand1.startswith('L"') or Oprand1.startswith('L')) and (not Oprand2.startswith('L"')) and (not Oprand2.startswith("L'"))) or \\r
+                        (((not Oprand1.startswith('L"')) and (not Oprand1.startswith("L'"))) and (Oprand2.startswith('L"') or Oprand2.startswith('L'))):\r
                     raise BadExpression(ERR_STRING_CMP % (Oprand1, Operator, Oprand2))\r
             if 'in' in Operator and isinstance(Oprand2, type('')):\r
                 Oprand2 = Oprand2.split()\r
@@ -827,6 +827,8 @@ class ValueExpressionEx(ValueExpression):
                 PcdValue = PcdValue.strip()\r
                 if PcdValue.startswith('{') and PcdValue.endswith('}'):\r
                     PcdValue = SplitPcdValueString(PcdValue[1:-1])\r
+                if ERR_STRING_CMP.split(':')[0] in Value.message:\r
+                    raise BadExpression("Type: %s, Value: %s, %s" % (self.PcdType, PcdValue, Value))\r
                 if isinstance(PcdValue, type([])):\r
                     TmpValue = 0\r
                     Size = 0\r