MdePkg: Fix X64 clang compile issues.

Fixed issues with X64 clang, and also make StackSwitch push a zero on the new stack to prevent a stack unwind into memory that is no longer valid.

signed-off-by: andrewfish
reviewed-by: lgao4
reviewed-by: mdkinney



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12007 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
andrewfish
2011-07-12 03:01:34 +00:00
parent 271d2c7f99
commit bab427db7d
5 changed files with 93 additions and 29 deletions

View File

@@ -829,6 +829,7 @@ PeCoffLoaderLoadImage (
EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY *ResourceDirectoryEntry;
EFI_IMAGE_RESOURCE_DIRECTORY_STRING *ResourceDirectoryString;
EFI_IMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry;
CHAR16 *String;
ASSERT (ImageContext != NULL);
@@ -1209,11 +1210,12 @@ PeCoffLoaderLoadImage (
for (Index = 0; Index < ResourceDirectory->NumberOfNamedEntries; Index++) {
if (ResourceDirectoryEntry->u1.s.NameIsString) {
ResourceDirectoryString = (EFI_IMAGE_RESOURCE_DIRECTORY_STRING *) (Base + ResourceDirectoryEntry->u1.s.NameOffset);
String = &ResourceDirectoryString->String[0];
if (ResourceDirectoryString->Length == 3 &&
ResourceDirectoryString->String[0] == L'H' &&
ResourceDirectoryString->String[1] == L'I' &&
ResourceDirectoryString->String[2] == L'I') {
String[0] == L'H' &&
String[1] == L'I' &&
String[2] == L'I') {
//
// Resource Type "HII" found
//