Could you provide us a example of this case?We compiled the same code in Visual studio compiler and we did not face any issues.

Thanks.

On Wed, Feb 10, 2016 at 1:15 PM, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
On 10 February 2016 at 08:42, Ravikanth MVR <ravikanth.mvr@broadcom.com> wrote:
> Ard,
>
> We built the binary after adding -fno-exceptions and the binary has been
> build successfully.We are using GCC4.9 compiler and toolchain.
>
> We then built our application with your patch and by adding following
> compiler  flags: -fno-rtti,-fno-threadsafe-statics -fuse-cxa-atexit and our
> binary also has been built successfully.
>
> But when we executed our binary,we ended up with below crash/error.Basically
> our application is command based and whatever command we execute we end up
> with the following crash/print.
>
> ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167):
> ((UINTN) String & 0x00000001) == 0
> ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167):
> ((UINTN) String & 0x00000001) == 0
> ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167):
> ((UINTN) String & 0x00000001) == 0
> ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167):
> ((UINTN) String & 0x00000001) == 0
>
> ASSERT_EFI_ERROR (Status = Invalid Parameter)
> ASSERT
> /home/edk2_new1/MyWorkSpace/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c(819):
> !EFI_ERROR (Status)
> ASSERT /home/edk2_new1/MyWorkSpace/MdePkg/Library/BaseLib/String.c(167):
> ((UINTN) String & 0x00000001) == 0
>
> May I know why we are seeing the above errors?
>

My guess would be that you are using an odd memory address for a
Unicode string (which consist of 16-bit quantities)