[all-commits] [llvm/llvm-project] fc1ffb: [AsmPrinter] Fix Crash when Emitting Global Consta...
Henry Yu via All-commits
all-commits at lists.llvm.org
Wed Mar 29 00:09:26 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: fc1ffb4c0ea886bf37a2169db3d9270eb600d9fc
https://github.com/llvm/llvm-project/commit/fc1ffb4c0ea886bf37a2169db3d9270eb600d9fc
Author: Henry Yu <hazyfish at outlook.com>
Date: 2023-03-29 (Wed, 29 Mar 2023)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
A llvm/test/CodeGen/AArch64/aarch64_be-global-const.ll
Log Message:
-----------
[AsmPrinter] Fix Crash when Emitting Global Constant of small bit width when targeting Big Endian arch
For Big Endian, the function `emitGlobalConstantLargeInt` tries to right shift `Realigned` by an amount `ExtraBitSize` in place. However, if the constant to emit has a bit width less than 64 and the bit width is not a multiple of 8, the shift amount will be greater than the bit width of `Realigned`, which causes assertion error described in issue [[ https://github.com/llvm/llvm-project/issues/59055 | issue #59055 ]].
This patch fixes the issue by avoiding right shift when bit width is under 64 to avoid the assertion error.
Reviewed By: Peter
Differential Revision: https://reviews.llvm.org/D138246
More information about the All-commits
mailing list