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