[llvm-dev] nullptr bit-value for DebugInfo in non-default address spaces

Friedman, Eli via llvm-dev llvm-dev at lists.llvm.org
Tue Dec 4 11:27:42 PST 2018


On 12/4/2018 6:47 AM, Jeremy Morse via llvm-dev wrote:
> Hi llvm-dev@,
>
> It recently transpired that LLVM doesn't correctly preserve debugging 
> information when null pointer constants are assigned to variables [0], 
> with the debug records getting dropped by SelectionDAG. Fixing that 
> [1] raises a few questions about the bit-value of null in different 
> address spaces, so I'd like to ask:
>  * Can we just assume that null is zero-valued for all address spaces?

It's not explicitly stated anywhere in LangRef, but in practice a 
ConstantPointerNull must have a zero bit-pattern in all address-spaces. 
Patch welcome if you want to modify LangRef.

Note that this might not match the C notion of a "null pointer"... LLVM 
optimizations for C library functions assume a ConstantPointerNull is in 
fact a null pointer in address-space zero, but otherwise it generally 
doesn't care.  clang supports mapping a null pointer to other values.

-Eli

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project



More information about the llvm-dev mailing list