diff options
Diffstat (limited to 'source/compiler/dtcompile.c')
-rw-r--r-- | source/compiler/dtcompile.c | 15 |
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: |