This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r186056 - in /branches/google/gcc-4_6-mobile/vt...
- From: ctice at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Sun, 01 Apr 2012 21:34:24 -0000
- Subject: r186056 - in /branches/google/gcc-4_6-mobile/vt...
Author: ctice
Date: Sun Apr 1 21:34:23 2012
New Revision: 186056
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=186056
Log:
Checkpoint current work on this branch. Almost have the first prototype working.
2012-04-01 Caroline Tice <cmtice@google.com>
* gcc/tree.h (save_vtable_map_decl): New extern function decl.
* gcc/cp/Make-lang.in (CXX_AND_OBJCXX_OBJS): Add
vtable-class-hierarchy.o to list of C++ language-specific object
files.
(vtable-class-hierarchy.o): Add rule for building
vtable-class-hierarchy.o
* gcc/cp/decl2.c (start_objects): Add third parameter, for
function name extension.
(generate_ctor_or_dtor_function): Add empty string as third
argument to calls to start_objects.
(cp_process_pending_declarations): Add code to generate special
constructor function with high initialization priority for special
vtable verification calls, if the flag_vtable_verify is set.
* gcc/cp/parser.c (cp_parser_class_specifier_1): If
flag_vtable_verify is set and the current class has base classes,
generate the
*.vtable_map variables for any base classes that don't already
have it and add the base class/derived class pair to the class
hierarchy information.
* gcc/cp/vtable-class-hierarchy.c: New file.
* gcc/cp/mangle.c (get_mangled_id): New function. Copied from PPH
work of Lawrence Crowl and Diego Novillo.
(mangle_decl): Call get_mangled_id rather than doing work directly
here. Copied from PPH work of Lawrence Crowl ande Diego Novillo.
* gcc/cp/cp-tree.h (get_mangled_id): New function decl.
(register_class_hierarchy_information): New function decl.
(update_class_hierarchy_information): New function decl.
(vtable_find_map_decl): New function decl.
* gcc/temp-libgcc.cc: New file.
* gcc/tree-vtable-verify.cc: (cp/cp-tree.h): New include statement.
(build_vtable_verify_fndecl): Renamed function (eliminated 's' from
the end).
(my_build1): New function.
(my_get_vtbl_decl_for_binfo): Renamed function (old name was
get_vtbl_decl_for_binfo).
(vtable_var_decl_array): New global variable.
(vtable_var_decl_array_max): New global variable.
(vtable_var_decl_array_entries): New global variable.
(find_vtable_map_decl): New function.
(save_vtable_map_decl): New function.
(verify_bb_vtables): Fix a few bugs, and add some debugging parameters
for calls to __VerifyVtablePointer.
(build_vtable_verify_fndecl): Remove unnecessary variables.
* gcc/config/i386/i386.c (ix86_vtable_security_code_end): Modify to
output dummy versions of __VLTChangePermission and __VLTRegisterPair
in addition to __VerifyVtablePointer. Also add code to generate
x86_64 assembly, instead of i386, if it's appropriate.
Added:
branches/google/gcc-4_6-mobile/vtable-security/ChangeLog.vtable-security
branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/vtable-class-hierarchy.c (with props)
branches/google/gcc-4_6-mobile/vtable-security/gcc/temp-libgcc.cc (with props)
Modified:
branches/google/gcc-4_6-mobile/vtable-security/gcc/config/i386/i386.c
branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/Make-lang.in
branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/cp-tree.h
branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/decl2.c
branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/mangle.c
branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/parser.c
branches/google/gcc-4_6-mobile/vtable-security/gcc/tree-vtable-verify.c
branches/google/gcc-4_6-mobile/vtable-security/gcc/tree.h
Propchange: branches/google/gcc-4_6-mobile/vtable-security/gcc/cp/vtable-class-hierarchy.c
('svn:eol-style' added)
Propchange: branches/google/gcc-4_6-mobile/vtable-security/gcc/temp-libgcc.cc
('svn:eol-style' added)