> On Oct 25, 2015, at 6:04 PM, Zeng, Star <[email protected]> wrote: > > On 2015/10/23 22:11, Andrew Fish wrote: >> >>> On Oct 23, 2015, at 12:53 AM, Zeng, Star <[email protected]> wrote: >>> >>> On 2015/10/22 23:54, Andrew Fish wrote: >>>> /Users/andrewfish/work/src/edk2/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c:682:28: >>>> error: for loop has empty body [-Werror,-Wempty-body] >>>> StackPointer ++); >>>> ^ >>>> /Users/andrewfish/work/src/edk2/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c:682:28: >>>> note: put the semicolon on a separate line to silence this warning >>>> 1 error generated. >>> >>> Do you have full code base and all package build about this warning? >>> I can some for loop like below in UefiLib.c AddUnicodeString2(). And there >>> maybe many other places have similar cases I guess since I never met this >>> build failure before. >>> >>> for (; *SupportedLanguages != 0 && *SupportedLanguages == ';'; >>> SupportedLanguages++); >>> >> >> That is legal >> >>> What's the real value of this build warning? >> >> -Wempty-body is designed to catch code bugs like: >> >> if (X); >> X++; >> >> In the above code X++ always runs. >> >> >>> And could you disable this warning the tool chain? >>> >> >> Yes any clang diagnostic that prints out the -W* you can do -Wno-* >> >> >> I realize my fix is bad. The error is really the next DEBUG() macro is >> indented like it is in a loop body. That is what is triggering the >> diagnostic. >> >> for (; *SupportedLanguages != 0 && *SupportedLanguages == ';'; >> SupportedLanguages++); >> WarningForLoopIndentation(); >> >> >> DEBUG_CODE_BEGIN (); >> UINT32 *StackPointer; >> >> for (StackPointer = (UINT32*)SecCoreData->StackBase; >> (StackPointer < (UINT32*)((UINTN)SecCoreData->StackBase + >> SecCoreData->StackSize)) \ >> && (*StackPointer == INIT_CAR_VALUE); >> StackPointer ++); >> >> DEBUG ((EFI_D_INFO, "Temp Stack : BaseAddress=0x%p Length=0x%X\n", >> SecCoreData->StackBase, (UINT32)SecCoreData->StackSize)); >> DEBUG ((EFI_D_INFO, "Temp Heap : BaseAddress=0x%p Length=0x%X\n", >> Private->HobList.Raw, (UINT32)((UINTN) >> Private->HobList.HandoffInformationTable->EfiFreeMemoryBottom - (UINTN) >> Private->HobList.Raw))); >> DEBUG ((EFI_D_INFO, "Total temporary memory: %d bytes.\n", >> (UINT32)SecCoreData->TemporaryRamSize)); >> DEBUG ((EFI_D_INFO, " temporary memory stack ever used: %d >> bytes.\n", >> (UINT32)(SecCoreData->StackSize - ((UINTN) StackPointer - >> (UINTN)SecCoreData->StackBase)) >> )); >> DEBUG ((EFI_D_INFO, " temporary memory heap used: %d >> bytes.\n", >> >> (UINT32)((UINTN)Private->HobList.HandoffInformationTable->EfiFreeMemoryBottom >> - (UINTN)Private->HobList.Raw) >> )); >> DEBUG_CODE_END (); >> >> Fixing the indentation to follow the coding standard makes the warning go >> away. That is the correct fix. > > Yes, I like this method to fix the indentation. > Could you help provide the formal patch? >
Thanks, Andrew Fish > Thanks, > Star > >> >> Thanks, >> >> Andrew Fish >> >>> Thanks, >>> Star >>> >>>> >>>> This code change removes the warning. >>>> diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c >>>> b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c >>>> index 7480b66..c563775 100644 >>>> --- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c >>>> +++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c >>>> @@ -679,7 +679,8 @@ PeiCheckAndSwitchStack ( >>>> for (StackPointer = (UINT32*)SecCoreData->StackBase; >>>> (StackPointer < (UINT32*)((UINTN)SecCoreData->StackBase + >>>> SecCoreData->StackSize)) \ >>>> && (*StackPointer == INIT_CAR_VALUE); >>>> - StackPointer ++); >>>> + StackPointer ++) >>>> + ; >>>> >>>> DEBUG ((EFI_D_INFO, "Temp Stack : BaseAddress=0x%p >>>> Length=0x%X\n", SecCoreData->StackBase, (UINT32)SecCoreData->StackSize)); >>>> DEBUG ((EFI_D_INFO, "Temp Heap : BaseAddress=0x%p >>>> Length=0x%X\n", Private->HobList.Raw, (UINT32)((UINTN) >>>> Private->HobList.HandoffInformationTable->EfiFreeMemoryBottom - (UINTN) >>>> Private->HobList.Raw))); >>>> >>>> >>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>> Signed-off-by: Andrew Fish <[email protected] <mailto:[email protected]>> >>>> >>>> Thanks, >>>> >>>> Andrew Fish >>>> >>>> _______________________________________________ >>>> edk2-devel mailing list >>>> [email protected] >>>> https://lists.01.org/mailman/listinfo/edk2-devel >>> >>> _______________________________________________ >>> edk2-devel mailing list >>> [email protected] >>> https://lists.01.org/mailman/listinfo/edk2-devel >
_______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

