http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570



--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> 2012-10-26 
10:32:53 UTC ---

Note that attributes on __builtin_object_size are wrong - it is marked as pure

which means that



 struct A { char a[4]; int i; } x;



 __builtin_object_size (&x, 1) == __builtin_object_size (&x.a[0], 1)



this only does not "break" as we fold the individual object size calls

to (different) constants before checking whether they are equivalent calls.

Same effect if it were const instead of pure.

Reply via email to