Files
clang-p2996/llvm/test/CodeGen/X86/ptrtoint-constexpr.ll
Nikita Popov fb7caa3c7b [AsmPrinter] Reject ptrtoint to larger size in lowerConstant()
When using a ptrtoint to a size larger than the pointer width in a
global initializer, we currently create a ptr & low_bit_mask style
MCExpr, which will later result in a relocation error during object
file emission.

This patch rejects the constant expression already during
lowerConstant(), which results in a much clearer error message
that references the constant expression at fault.

This fixes https://github.com/llvm/llvm-project/issues/56400,
for certain definitions of "fix".

Differential Revision: https://reviews.llvm.org/D130366
2022-07-25 10:18:27 +02:00

15 lines
328 B
LLVM

; RUN: llc < %s -mtriple=i386-linux | FileCheck %s
%union.x = type { i32 }
; CHECK: .globl r
; CHECK: r:
; CHECK: .long r
@r = global %union.x { i32 ptrtoint (ptr @r to i32) }, align 4
; CHECK: .globl x
; CHECK: x:
; CHECK: .quad 3
@x = global i64 mul (i64 3, i64 ptrtoint (ptr getelementptr (i2, ptr null, i64 1) to i64))