summaryrefslogtreecommitdiff
path: root/source/compiler/dtcompile.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler/dtcompile.c')
-rw-r--r--source/compiler/dtcompile.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c
index b6a144feb2bf..bdd8c1b70b8d 100644
--- a/source/compiler/dtcompile.c
+++ b/source/compiler/dtcompile.c
@@ -276,7 +276,10 @@ DtDoCompile (
if (ACPI_FAILURE (Status))
{
- FileNode->ParserErrorDetected = TRUE;
+ if (FileNode)
+ {
+ FileNode->ParserErrorDetected = TRUE;
+ }
/* TBD: temporary error message. Msgs should come from function above */
@@ -572,7 +575,7 @@ DtCompileTable (
ACPI_STATUS Status = AE_OK;
- if (!Field)
+ if (!Field || !Info)
{
return (AE_BAD_PARAMETER);
}
@@ -643,6 +646,14 @@ DtCompileTable (
FieldType = DtGetFieldType (Info);
AslGbl_InputFieldCount++;
+ if (FieldType != DT_FIELD_TYPE_INLINE_SUBTABLE &&
+ strcmp (Info->Name, LocalField->Name))
+ {
+ sprintf (AslGbl_MsgBuffer, "found \"%s\" expected \"%s\"",
+ LocalField->Name, Info->Name);
+ DtError (ASL_ERROR, ASL_MSG_INVALID_LABEL, LocalField, AslGbl_MsgBuffer);
+ }
+
switch (FieldType)
{
case DT_FIELD_TYPE_FLAGS_INTEGER: