https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103427
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu.org, | |amacleod at redhat dot com, | |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I guess we'd need to use min_align_of_type, because say ia32 long long & can bind to a long long member inside of struct S { int a; long long b; } and then it is only 4 byte aligned. The question is how/where to do this though, as POINTER_TYPE_P conversions are considered useless and therefore what has been a reference or pointer and to what exactly can blur pretty fast. But at least whether a PARM_DECL has reference type or pointer type and what the pointed type is shouldn't change arbitrarily. I'm not sure if we can rely on this for non-C++ FEs though, so perhaps a langhook that we use during evrp on (D) SSA_NAME of PARM_DECLs and ask the FE whether it guarantees some alignment for those (aka pretend there is a virtual __builtin_assume_aligned for those)?