This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: No TBAA before ptr_derefs_may_alias_p?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]