aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorKelvin Li <kkwli@users.noreply.github.com>2024-08-06 18:23:05 -0400
committerGitHub <noreply@github.com>2024-08-06 18:23:05 -0400
commitce2a3d9042c95630f12b790bf201c4daf8941afb (patch)
tree89caa9e2b163bc97ae8a117698178d734a275649 /llvm/lib/CodeGen/PrologEpilogInserter.cpp
parente7efa323be30dcb604847159817f6c67c657f1a5 (diff)
downloadllvm-ce2a3d9042c95630f12b790bf201c4daf8941afb.zip
llvm-ce2a3d9042c95630f12b790bf201c4daf8941afb.tar.gz
llvm-ce2a3d9042c95630f12b790bf201c4daf8941afb.tar.bz2
[flang] Match the type of the element size in the box in getValueFromBox (#100512)
Currently, `%17 = fir.box_elesize %16 : (!fir.class<!fir.ptr<!fir.type<_QFTt{a:i32,b:i32}>>>) -> i32` is translated to ``` %4 = getelementptr { ptr, i64, i32, i8, i8, i8, i8, ptr, [1 x i64] }, ptr %1, i32 0, i32 1 %5 = load i32, ptr %4, align 4 ``` The type of the element size is `i64`. The load essentially truncates the value and yields incorrect result in the big endian environment. The problem occurs in the `storage_size` intrinsic on a polymorphic variable.
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
0 files changed, 0 insertions, 0 deletions