summaryrefslogtreecommitdiff
path: root/source/compiler/aslmethod.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler/aslmethod.c')
-rw-r--r--source/compiler/aslmethod.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c
index 40ed971e0712..bf3a683f8d94 100644
--- a/source/compiler/aslmethod.c
+++ b/source/compiler/aslmethod.c
@@ -101,7 +101,7 @@ MtMethodAnalysisWalkBegin (
/* Create and init method info */
- MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO));
+ MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO));
MethodInfo->Next = WalkInfo->MethodStack;
MethodInfo->Op = Op;
@@ -186,7 +186,9 @@ MtMethodAnalysisWalkBegin (
NextParamType = NextType->Asl.Child;
while (NextParamType)
{
- MethodInfo->ValidArgTypes[ActualArgs] |= AnMapObjTypeToBtype (NextParamType);
+ MethodInfo->ValidArgTypes[ActualArgs] |=
+ AnMapObjTypeToBtype (NextParamType);
+
NextParamType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
NextParamType = NextParamType->Asl.Next;
}
@@ -195,6 +197,7 @@ MtMethodAnalysisWalkBegin (
{
MethodInfo->ValidArgTypes[ActualArgs] =
AnMapObjTypeToBtype (NextType);
+
NextType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
ActualArgs++;
}
@@ -251,7 +254,8 @@ MtMethodAnalysisWalkBegin (
* Local was used outside a control method, or there was an error
* in the method declaration.
*/
- AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName);
+ AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD,
+ Op, Op->Asl.ExternalName);
return (AE_ERROR);
}
@@ -294,7 +298,8 @@ MtMethodAnalysisWalkBegin (
* Arg was used outside a control method, or there was an error
* in the method declaration.
*/
- AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName);
+ AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD,
+ Op, Op->Asl.ExternalName);
return (AE_ERROR);
}
@@ -317,7 +322,7 @@ MtMethodAnalysisWalkBegin (
* The only operator that accepts an uninitialized value is ObjectType()
*/
else if ((!MethodInfo->ArgInitialized[RegisterNumber]) &&
- (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE))
+ (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE))
{
AslError (ASL_ERROR, ASL_MSG_ARG_INIT, Op, ArgName);
}
@@ -418,7 +423,8 @@ MtMethodAnalysisWalkBegin (
i = ApCheckForPredefinedName (Op, Op->Asl.NameSeg);
if (i < ACPI_VALID_RESERVED_NAME_MAX)
{
- AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, Op, Op->Asl.ExternalName);
+ AslError (ASL_ERROR, ASL_MSG_RESERVED_USE,
+ Op, Op->Asl.ExternalName);
}
break;
@@ -495,9 +501,10 @@ MtCheckNamedObjectInMethod (
const ACPI_OPCODE_INFO *OpInfo;
- /* We don't care about actual method declarations */
+ /* We don't care about actual method declarations or scopes */
- if (Op->Asl.AmlOpcode == AML_METHOD_OP)
+ if ((Op->Asl.AmlOpcode == AML_METHOD_OP) ||
+ (Op->Asl.AmlOpcode == AML_SCOPE_OP))
{
return;
}
@@ -677,7 +684,8 @@ MtMethodAnalysisWalkEnd (
*/
if (Op->Asl.Next)
{
- AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, Op->Asl.Next, NULL);
+ AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE,
+ Op->Asl.Next, NULL);
}
break;