------- Comment #160 from rguenther at suse dot de 2007-05-27 14:57 ------- Subject: Re: [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should
On Sat, 25 May 2007, ian at airs dot com wrote: > ------- Comment #159 from ian at airs dot com 2007-05-25 23:21 ------- > Created an attachment (id=13613) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13613&action=view) > --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13613&action=view) > Patch > > This version of the patch is based on some code from Daniel Berlin. Here we > determine which pointers can potentially be associated with a placement new. > We disable TBAA specifically for those pointers. > > I'm not 100% confident that this patch always does the right thing. But it > does work for the test cases I tried. > > Richi, I'd be interested in results you get from your performance tests. Please - this patch doesn't fix FreePOOMA nor does it fix the runtime testcase I posted here before. We still have <bb 3>: l_7 = (int *) p_6(D); # SMT.31_21 = VDEF <SMT.31_18> *l_7 = 0; <<<change_dynamic_type (long int *) p_6(D))>>> __p_14 = p_6(D); f_10 = (long int *) __p_14; # SMT.30_22 = VDEF <SMT.30_17> *f_10 = -1; the store to *f_10 needs to alias the store to *l_7. Can you just add the runtime testcase to your patches and make sure at least that one is working? Thanks, Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29286