OvmfPkg/X86QemuLoadImageLib: fix "unused variable" error in X64 DXE builds

When the MDE_CPU_IA32 macro is not defined, there is no access to the
"KernelImageHandle" local variable in QemuStartKernelImage(). This breaks
the OvmfPkgIa32X64 and OvmfPkgX64 platform builds, at least with gcc-8.

Move the local variable to the inner scope, where declaration and usage
are inseparable.

(Note that such inner-scope declarations are frowned upon in the wider
edk2 codebase, but we use them liberally in ArmVirtPkg and OvmfPkg anyway,
because they help us reason about variable lifetime and visibility.)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Fixes: 7c47d89003
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2572
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
This commit is contained in:
Laszlo Ersek 2020-03-07 00:04:42 +01:00 committed by mergify[bot]
parent 40d572f70d
commit a3e25cc8a1
1 changed files with 2 additions and 1 deletions

View File

@ -460,7 +460,6 @@ QemuStartKernelImage (
{
EFI_STATUS Status;
OVMF_LOADED_X86_LINUX_KERNEL *LoadedImage;
EFI_HANDLE KernelImageHandle;
Status = gBS->OpenProtocol (
*ImageHandle,
@ -481,6 +480,8 @@ QemuStartKernelImage (
);
#ifdef MDE_CPU_IA32
if (Status == EFI_UNSUPPORTED) {
EFI_HANDLE KernelImageHandle;
//
// On IA32, EFI_UNSUPPORTED means that the image's machine type is X64 while
// we are expecting a IA32 one, and the StartImage () boot service is unable