This is the mail archive of the gcc-patches@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: Track dynamic type changes


Hi Jan,

> this patch makes ipa_polymorphic_call_context::get_dynamic_type to
> track if vptr has changed in between function entry and polymorphic
> call.
>
> The patch also add logic skipping if (a==0) checks in multiple
> inheritance so I can construct testcase more easily.
>
> I got my SVN tree into an inconsistent state yesterday by stopping in
> middle of commit.  The patch went in in two parts, so i am attaching 
> both changes. Quite few of devirt-4*.C was broken overnight, I apologize
> for that.

as of yesterday (r215969), many of the devirt-4*.C tests come up
UNRESOLVED on both Solaris/x86 and Solaris/SPARC:

UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-times optimized "return 2" 2
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++1y  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++1y  scan-ipa-dump-times optimized "return 2" 2
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times optimized "return 2" 2
UNRESOLVED: g++.dg/ipa/devirt-46.C  -std=gnu++11  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-46.C  -std=gnu++11  scan-ipa-dump-not optimized "abort"
UNRESOLVED: g++.dg/ipa/devirt-46.C  -std=gnu++1y  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-46.C  -std=gnu++1y  scan-ipa-dump-not optimized "abort"
UNRESOLVED: g++.dg/ipa/devirt-46.C  -std=gnu++98  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-46.C  -std=gnu++98  scan-ipa-dump-not optimized "abort"
UNRESOLVED: g++.dg/ipa/devirt-47.C  -std=gnu++11  scan-ipa-dump optimized "C::_ZThn"
UNRESOLVED: g++.dg/ipa/devirt-47.C  -std=gnu++11  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-47.C  -std=gnu++1y  scan-ipa-dump optimized "C::_ZThn"
UNRESOLVED: g++.dg/ipa/devirt-47.C  -std=gnu++1y  scan-ipa-dump-not optimized "OBJ_TYPE_REF"
UNRESOLVED: g++.dg/ipa/devirt-47.C  -std=gnu++98  scan-ipa-dump optimized "C::_ZThn"
UNRESOLVED: g++.dg/ipa/devirt-47.C  -std=gnu++98  scan-ipa-dump-not optimized "OBJ_TYPE_REF"

both 32 and 64-bit.

In all cases, g++.log shows

g++.dg/ipa/devirt-42.C  -std=gnu++98 : dump file does not exist
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times optimized "return 2" 2
g++.dg/ipa/devirt-42.C  -std=gnu++98 : dump file does not exist
UNRESOLVED: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-not optimized "OBJ_TYPE_REF"

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


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