AaronBallman wrote: > Hi @AaronBallman @tbaederr, before I proceed with the follow-up changes, I'd > like to make sure we're aligned on the intended behavior here. > > Eli suggested that, for pointers without a base whose exact numeric value is > known, we could simply perform the arithmetic for align_up and align_down > (with null pointers remaining null), even though integer-to-pointer casts are > already in extension territory. > > Do you both agree with this direction? If so, I'll update the implementation > accordingly and make sure the behavior is consistent between the old constant > evaluator and the new constant interpreter.
The null pointer behavior makes sense to me. The behavior on integers cast to pointers is less clear to me, but I think it's reasonable enough to do math. But I wouldn't object strongly to making that ill-formed in a constant expression either; we could always relax the restriction later when a user has an actual use case for it. @tbaederr or others, do you have opinions on that case? https://github.com/llvm/llvm-project/pull/224549 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
