ooo-build r11349 - trunk/patches/test
- From: michael svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11349 - trunk/patches/test
- Date: Mon, 21 Jan 2008 18:11:58 +0000 (GMT)
Author: michael
Date: Mon Jan 21 18:11:58 2008
New Revision: 11349
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11349&view=rev
Log:
actually works too now.
Modified:
trunk/patches/test/gcc-vt-copy-4.diff
Modified: trunk/patches/test/gcc-vt-copy-4.diff
==============================================================================
--- trunk/patches/test/gcc-vt-copy-4.diff (original)
+++ trunk/patches/test/gcc-vt-copy-4.diff Mon Jan 21 18:11:58 2008
@@ -12,7 +12,7 @@
diff -u -r -x '*~' -x testsuite -x libjava -x cc-nptl -x build-dir -x '*.orig' -x obj-i586-suse-linux -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' pristine-gcc-4.2.1-simple/gcc/cp/class.c gcc-4.2.1-simple/gcc/cp/class.c
--- pristine-gcc-4.2.1-simple/gcc/cp/class.c 2007-07-05 10:02:39.000000000 +0100
-+++ gcc-4.2.1-simple/gcc/cp/class.c 2008-01-21 18:00:15.000000000 +0000
++++ gcc-4.2.1-simple/gcc/cp/class.c 2008-01-21 18:12:52.000000000 +0000
@@ -136,7 +136,7 @@
static tree fixed_type_or_null (tree, int *, int *);
static tree build_simple_base_path (tree expr, tree binfo);
@@ -48,7 +48,7 @@
/* Check for adjusting covariant return types. */
over_return = TREE_TYPE (TREE_TYPE (overrider_target));
-@@ -6355,6 +6359,47 @@
+@@ -6355,6 +6359,49 @@
return decl;
}
@@ -89,6 +89,8 @@
+ DECL_NOT_REALLY_EXTERN (d) = 1;
+ set_linkage_according_to_type (t, d);
+ pushdecl_top_level_and_finish (d, NULL_TREE);
++
++ vtable_copy_slots = tree_cons (t, inits, vtable_copy_slots);
+ }
+
+ return d;
@@ -96,7 +98,7 @@
/* Returns the binfo for the primary base of BINFO. If the resulting
BINFO is a virtual base, and it is inherited elsewhere in the
-@@ -6438,7 +6483,7 @@
+@@ -6438,7 +6485,7 @@
if (indented)
fprintf (stream, "\n");
@@ -105,7 +107,7 @@
{
int indented = 0;
-@@ -6637,33 +6682,529 @@
+@@ -6637,33 +6684,531 @@
dump_thunk (stderr, 0, fn);
}
@@ -146,12 +148,12 @@
+ if (!dest_binfo || !bitmap)
+ return chain;
+
-+ /* fprintf (stderr, "Copy %s + %d => ",
++ fprintf (stderr, "Copy %s + %d => ",
+ type_as_string (src_binfo, TFF_PLAIN_IDENTIFIER),
+ src_offset);
+ fprintf (stderr, " %s + %d mask 0x%x\n",
+ type_as_string (dest_binfo, TFF_PLAIN_IDENTIFIER),
-+ dest_offset, bitmap); */
++ dest_offset, bitmap);
+
+ elem = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, bitmap), elem);
+
@@ -166,6 +168,7 @@
+ return tree_cons (NULL_TREE, init, chain);
+}
+
++#if 0
+/* Register vtreloc for a given type, and return a decl
+ for this type's vtrelocs */
+static tree
@@ -231,7 +234,7 @@
+ src_offset - i, bitmap, inits); */
+ }
+
-+ if (inits)
++ /* if (inits)
+ {
+ tree decl;
+
@@ -241,12 +244,13 @@
+
+ return build_nop (vfunc_ptr_type_node, build_address (decl));
+ }
-+ else
++ else */
+ return fold_build1 (NOP_EXPR,
+ vtable_entry_type,
+ build_int_cst (build_pointer_type (void_type_node),
+ 0xf00df00d));
+}
++#endif
+
/* Virtual function table initialization. */
@@ -281,12 +285,12 @@
+
+ /* So ... we have a hack here - we append a reference to
+ the vtable to ourselves, in order to stop us getting GC'd */
-+ if (slot_relocs)
++ /* if (slot_relocs)
+ {
+ tree init = build_vtreloc_decl (t, slot_relocs);
+ TREE_VALUE (list) = chainon (TREE_VALUE (list),
+ build_tree_list (NULL_TREE, init));
-+ }
++ } */
+
+ return TREE_VALUE (list);
+}
@@ -571,8 +575,8 @@
+ elt->index = TREE_PURPOSE (t);
+ elt->value = TREE_VALUE (t);
+ }
-+ }
-+
+ }
+
+ return v;
+}
+
@@ -628,8 +632,8 @@
+ fprintf (stderr, "Use new inits !\n");
+ inits = new_inits;
+ }
- }
-
++ }
++
+ vec_heap_free (dest_frags);
+ vec_heap_free (src_frags);
+ }
@@ -640,7 +644,7 @@
}
/* Initialize the vtable for BINFO with the INITS. */
-@@ -6945,6 +7486,7 @@
+@@ -6945,6 +7490,7 @@
tree inits;
tree id;
tree vbase;
@@ -648,7 +652,7 @@
/* See if we've already created this construction vtable group. */
id = mangle_ctor_vtbl_for_type (t, binfo);
-@@ -6955,11 +7497,13 @@
+@@ -6955,11 +7501,13 @@
/* Build a version of VTBL (with the wrong type) for use in
constructing the addresses of secondary vtables in the
construction vtable group. */
@@ -663,7 +667,7 @@
/* Add the vtables for each of our virtual bases using the vbase in T
binfo. */
-@@ -6973,7 +7517,7 @@
+@@ -6973,7 +7521,7 @@
continue;
b = copied_binfo (vbase, binfo);
@@ -672,7 +676,7 @@
}
inits = TREE_VALUE (list);
-@@ -6986,6 +7530,11 @@
+@@ -6986,6 +7534,11 @@
CLASSTYPE_VTABLES (t) = chainon (CLASSTYPE_VTABLES (t), vtbl);
initialize_artificial_var (vtbl, inits);
dump_vtable (t, binfo, vtbl);
@@ -684,7 +688,7 @@
}
/* Add the vtbl initializers for BINFO (and its bases other than
-@@ -7003,7 +7552,8 @@
+@@ -7003,7 +7556,8 @@
tree orig_binfo,
tree rtti_binfo,
tree t,
@@ -694,7 +698,7 @@
{
int i;
tree base_binfo;
-@@ -7026,7 +7576,7 @@
+@@ -7026,7 +7580,7 @@
TREE_VALUE (inits)
= chainon (TREE_VALUE (inits),
dfs_accumulate_vtbl_inits (binfo, orig_binfo,
@@ -703,7 +707,7 @@
/* Walk the BINFO and its bases. We walk in preorder so that as we
initialize each vtable we can figure out at what offset the
-@@ -7041,7 +7591,7 @@
+@@ -7041,7 +7595,7 @@
accumulate_vtbl_inits (base_binfo,
BINFO_BASE_BINFO (orig_binfo, i),
rtti_binfo, t,
@@ -712,7 +716,7 @@
}
}
-@@ -7053,7 +7603,8 @@
+@@ -7053,7 +7607,8 @@
tree orig_binfo,
tree rtti_binfo,
tree t,
@@ -722,7 +726,7 @@
{
tree inits = NULL_TREE;
tree vtbl = NULL_TREE;
-@@ -7120,7 +7671,7 @@
+@@ -7120,7 +7675,7 @@
/* Compute the initializer for this vtable. */
inits = build_vtbl_initializer (binfo, orig_binfo, t, rtti_binfo,
@@ -731,7 +735,7 @@
/* Figure out the position to which the VPTR should point. */
vtbl = TREE_PURPOSE (l);
-@@ -7184,7 +7735,8 @@
+@@ -7184,7 +7739,8 @@
tree orig_binfo,
tree t,
tree rtti_binfo,
@@ -741,7 +745,7 @@
{
tree v, b;
tree vfun_inits;
-@@ -7192,6 +7744,8 @@
+@@ -7192,6 +7748,8 @@
unsigned ix;
tree vbinfo;
VEC(tree,gc) *vbases;
@@ -750,7 +754,7 @@
/* Initialize VID. */
memset (&vid, 0, sizeof (vid));
-@@ -7213,7 +7767,7 @@
+@@ -7213,7 +7771,7 @@
signature, we share the vcall offsets. */
vid.fns = VEC_alloc (tree, gc, 32);
/* Add the vcall and vbase offset entries. */
@@ -759,7 +763,7 @@
/* Clear BINFO_VTABLE_PATH_MARKED; it's set by
build_vbase_offset_vtbl_entries. */
-@@ -7240,20 +7794,62 @@
+@@ -7240,20 +7798,62 @@
}
}
@@ -824,7 +828,7 @@
fn_original = fn;
if (DECL_THUNK_P (fn))
{
-@@ -7281,7 +7877,10 @@
+@@ -7281,7 +7881,10 @@
{
/* We found a defn before a lost primary; go ahead as normal. */
if (look_for_overrides_here (BINFO_TYPE (b), fn_original))
@@ -836,7 +840,7 @@
/* The nearest definition is from a lost primary; clear the
slot. */
-@@ -7299,6 +7898,9 @@
+@@ -7299,6 +7902,9 @@
delta = BV_DELTA (v);
vcall_index = BV_VCALL_INDEX (v);
@@ -846,7 +850,7 @@
gcc_assert (TREE_CODE (delta) == INTEGER_CST);
gcc_assert (TREE_CODE (fn) == FUNCTION_DECL);
-@@ -7315,13 +7917,57 @@
+@@ -7315,13 +7921,57 @@
{
if (!integer_zerop (delta) || vcall_index)
{
@@ -910,7 +914,7 @@
}
}
-@@ -7346,8 +7992,71 @@
+@@ -7346,8 +7996,71 @@
}
else
vfun_inits = tree_cons (NULL_TREE, init, vfun_inits);
@@ -982,7 +986,7 @@
/* The initializers for virtual functions were built up in reverse
order; straighten them out now. */
vfun_inits = nreverse (vfun_inits);
-@@ -7363,7 +8072,8 @@
+@@ -7363,7 +8076,8 @@
offsets in BINFO, which is in the hierarchy dominated by T. */
static void
@@ -992,7 +996,7 @@
{
tree b;
-@@ -7371,10 +8081,17 @@
+@@ -7371,10 +8085,17 @@
corresponding to the primary base class. */
b = get_primary_binfo (binfo);
if (b)
@@ -1119,7 +1123,7 @@
pop_namespace ();
diff -u -r -x '*~' -x testsuite -x libjava -x cc-nptl -x build-dir -x '*.orig' -x obj-i586-suse-linux -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' pristine-gcc-4.2.1-simple/gcc/cp/decl2.c gcc-4.2.1-simple/gcc/cp/decl2.c
--- pristine-gcc-4.2.1-simple/gcc/cp/decl2.c 2007-06-28 14:16:12.000000000 +0100
-+++ gcc-4.2.1-simple/gcc/cp/decl2.c 2008-01-18 14:08:10.000000000 +0000
++++ gcc-4.2.1-simple/gcc/cp/decl2.c 2008-01-21 18:14:16.000000000 +0000
@@ -2910,6 +2910,45 @@
finish_objects (function_key, priority, body);
}
@@ -1129,7 +1133,7 @@
+{
+ tree k;
+
-+ if (!getenv ("VT_SHRINK"))
++ if (!getenv ("VT_SHRINK") && !getenv ("INHERITEDINITS"))
+ return;
+
+ fprintf (stderr, "Generate_vtable_copy_slots\n");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]