On 2015/10/26 9:54, Zeng, Star wrote:
Reviewed-by: Star Zeng <star.z...@intel.com>

to the attached patch.

I could not see the email I replied to edk2-devel-01 <edk2-de...@ml01.01.org>, 
so re-reply to edk2-devel@lists.01.org.

Andrew,

Will you commit this patch by yourself, or need me help to do that?


Thanks
Star


Thanks,
Star
From: af...@apple.com [mailto:af...@apple.com]
Sent: Monday, October 26, 2015 9:31 AM
To: Zeng, Star
Cc: edk2-devel-01
Subject: Re: [edk2] [MdeModulePkg] PeiMain PeiCore does not compile with Xcode 
6.3.2


On Oct 25, 2015, at 6:04 PM, Zeng, Star <star.z...@intel.com> wrote:

On 2015/10/23 22:11, Andrew Fish wrote:

On Oct 23, 2015, at 12:53 AM, Zeng, Star <star.z...@intel.com> 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 <af...@apple.com <mailto:af...@apple.com>>

Thanks,

Andrew Fish

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to