------- Comment #2 from jwakely dot gcc at gmail dot com 2009-08-07 12:26 ------- The line before the assertion shows the address of the 'Bar' subobject, which is not the same value as previously given for that subobject (on the 2nd and 5th lines of output.)
Like the reporter, I expected the line: Bar& bar(getOuter()); to adjust the pointer to the Bar 'subobject' but instead it appears to point to the 'Bart' subobject returned by the covariant getOuter(). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40997