From e4ac870fe95adc7d178a79b73ad2792e0c8bfeb8 Mon Sep 17 00:00:00 2001 From: "Gao, Liming" Date: Tue, 1 Jul 2014 07:10:10 +0000 Subject: Sync BaseTool trunk (version r2670) into EDKII BaseTools. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming Reviewed-by: Liu, Yingke D (yingke.d.liu@intel.com) git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15605 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'BaseTools/Source/Python/Workspace/WorkspaceDatabase.py') diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index 3444e4f053..6ebb7ee87d 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -37,6 +37,7 @@ from BuildClassObject import * from WorkspaceCommon import GetDeclaredPcd from Common.Misc import AnalyzeDscPcd import re +from Common.Parsing import IsValidWord ## Platform build information from DSC file # @@ -893,13 +894,23 @@ class DscBuildData(PlatformBuildClassObject): VariableName, VariableGuid, VariableOffset, DefaultValue = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4) ExceedMax = False + FormatCorrect = True if VariableOffset.isdigit(): if int(VariableOffset,10) > 0xFFFF: ExceedMax = True elif re.match(r'[\t\s]*0[xX][a-fA-F0-9]+$',VariableOffset): if int(VariableOffset,16) > 0xFFFF: ExceedMax = True + # For Offset written in "A.B" + elif VariableOffset.find('.') > -1: + VariableOffsetList = VariableOffset.split(".") + if not (len(VariableOffsetList) == 2 + and IsValidWord(VariableOffsetList[0]) + and IsValidWord(VariableOffsetList[1])): + FormatCorrect = False else: + FormatCorrect = False + if not FormatCorrect: EdkLogger.error('Build', FORMAT_INVALID, "Invalid syntax or format of the variable offset value is incorrect for %s." % ".".join((TokenSpaceGuid,PcdCName))) if ExceedMax: -- cgit v1.2.3