[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

ian at airs dot com gcc-bugzilla@gcc.gnu.org
Fri May 4 06:37:00 GMT 2007



------- Comment #40 from ian at airs dot com  2007-05-04 07:37 -------
Created an attachment (id=13506)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13506&action=view)
Patch

Here is yet another patch, an improvement over the previous one.  It finally
dawned on me that we can use an asm to represent the exact memory operations we
care about, namely a use of the memory accessed via the old type and a def of
the memory accessed via the new type.  This way we don't mess with alias sets
at all per se, we just put down a barrier for exactly the memory addresses that
matter (of course the effect may be to VUSE and VDEF SMT tags, but the aliasing
machinery takes care of that for us).

This patch still needs some more testing--in particular I need to make sure it
does the right thing for templates--but it passes bootstrap and the g++
testsuite.

Richard, could you test it on your C++ test case(s)?  Thanks.


-- 

ian at airs dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #13504|0                           |1
        is obsolete|                            |


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



More information about the Gcc-bugs mailing list