summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg
diff options
context:
space:
mode:
authorAndrew Fish <afish@apple.com>2019-08-15 13:00:31 -0700
committerMichael D Kinney <michael.d.kinney@intel.com>2019-08-19 09:57:28 -0700
commitd47778e52275daa3a6a702e3182dc85e11beadb7 (patch)
treea49c5ee7c64e3c79034d3978f030f34c24f2c8ce /EmulatorPkg
parent6ed2c8bed3d213401deff18323c929e4e6743cec (diff)
downloadedk2-d47778e52275daa3a6a702e3182dc85e11beadb7.tar.gz
edk2-d47778e52275daa3a6a702e3182dc85e11beadb7.tar.bz2
edk2-d47778e52275daa3a6a702e3182dc85e11beadb7.zip
EmulatorPkg/Sec: Change scope of PpiArray[10]
The local variable PpiArray[10] is declared in the middle of the SEC module _ModuleEntryPoint() with its own scope. However, PpiArray has a dangling reference to its location on the stack after the scope is closed. This causes issues with some compilers (e.g. XCODE5). The fix is to move the declaration of PpiArray[10] to the beginning of the function, so it is scoped correctly for all references to this local variable and references to its location. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Andrew Fish <afish@apple.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
Diffstat (limited to 'EmulatorPkg')
-rw-r--r--EmulatorPkg/Sec/Sec.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/EmulatorPkg/Sec/Sec.c b/EmulatorPkg/Sec/Sec.c
index 701032233b..b734d2bb87 100644
--- a/EmulatorPkg/Sec/Sec.c
+++ b/EmulatorPkg/Sec/Sec.c
@@ -75,6 +75,7 @@ _ModuleEntryPoint (
EFI_PEI_PPI_DESCRIPTOR *SecPpiList;
UINTN SecReseveredMemorySize;
UINTN Index;
+ EFI_PEI_PPI_DESCRIPTOR PpiArray[10];
EMU_MAGIC_PAGE()->PpiList = PpiList;
ProcessLibraryConstructorList ();
@@ -104,16 +105,13 @@ _ModuleEntryPoint (
SecCoreData->PeiTemporaryRamBase = (VOID *)((UINTN)SecCoreData->PeiTemporaryRamBase + SecReseveredMemorySize);
SecCoreData->PeiTemporaryRamSize -= SecReseveredMemorySize;
#else
- {
- //
- // When I subtrack from SecCoreData->PeiTemporaryRamBase PEI Core crashes? Either there is a bug
- // or I don't understand temp RAM correctly?
- //
- EFI_PEI_PPI_DESCRIPTOR PpiArray[10];
-
- SecPpiList = &PpiArray[0];
- ASSERT (sizeof (PpiArray) >= SecReseveredMemorySize);
- }
+ //
+ // When I subtrack from SecCoreData->PeiTemporaryRamBase PEI Core crashes? Either there is a bug
+ // or I don't understand temp RAM correctly?
+ //
+
+ SecPpiList = &PpiArray[0];
+ ASSERT (sizeof (PpiArray) >= SecReseveredMemorySize);
#endif
// Copy existing list, and append our entries.
CopyMem (SecPpiList, PpiList, sizeof (EFI_PEI_PPI_DESCRIPTOR) * Index);