No TBAA before ptr_derefs_may_alias_p?

Florian Weimer fweimer@redhat.com
Mon Feb 3 10:14:00 GMT 2014


On 02/03/2014 10:59 AM, Jakub Jelinek wrote:
> On Mon, Feb 03, 2014 at 09:51:01AM +0000, Bingfeng Mei wrote:
>> If it is just for C++ placement new, why don't implement it as a lang_hook.
>> Now other languages such as C have to be made conservative and produce worse
>> code.
>
> Even in C++ code you don't use placement new that often, so e.g. by having
> the placement new explicit through some special GIMPLE statement in the IL,
> you could e.g. just look if a particular function or loop contains any
> placement new stmts (cached in struct function and loop?) and use TBAA if
> it isn't there.

I believe the convenience of TBAA lies in the fact that you don't have 
to prove anything about actual program behavior if the types are 
sufficiently distinct.  If you allow local violations of that principle, 
the global property inevitably breaks down as well.

In any case, C code can call C++ code and vice versa, so it's difficult 
to consider each language in isolation.

-- 
Florian Weimer / Red Hat Product Security Team



More information about the Gcc mailing list