On Wed, Nov 10, 2021 at 12:31:32AM +0530, Siddhesh Poyarekar wrote: > (object_sizes_execute): Don't insert min/max for dynamic sizes.
I'm worried about this. I'd say what we might want to do is in the early pass for __bdos compute actually __bos (i.e. the static one) and add MIN_EXPR/MAX_EXPR for the result of the __bdos call from the second pass with the statically computed value. The reason for the MIN_EXPR/MAX_EXPR stuff is that GIMPLE optimizations can remove exact ADDR_EXPRs with detailed COMPONENT_REF etc. access paths in it, so during the late objsz2 pass the subobject modes don't work reliably anymore. But the subobject knowledge should be the same between the static and dynamic evaluation... Jakub