ooo-build r11297 - trunk/patches/test



Author: michael
Date: Thu Jan 17 11:38:29 2008
New Revision: 11297
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11297&view=rev

Log:
alignment fix.


Modified:
   trunk/patches/test/gcc-vt-copy-3.diff

Modified: trunk/patches/test/gcc-vt-copy-3.diff
==============================================================================
--- trunk/patches/test/gcc-vt-copy-3.diff	(original)
+++ trunk/patches/test/gcc-vt-copy-3.diff	Thu Jan 17 11:38:29 2008
@@ -27,7 +27,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-16 16:26:01.000000000 +0000
++++ gcc-4.2.1-simple/gcc/cp/class.c	2008-01-17 11:32:50.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);
@@ -52,7 +52,7 @@
  static void clone_constructors_and_destructors (tree);
  static tree build_clone (tree, tree);
  static void update_vtable_entry_for_fn (tree, tree, tree, tree *, unsigned);
-@@ -6355,6 +6355,49 @@
+@@ -6355,6 +6355,52 @@
    return decl;
  }
  
@@ -70,11 +70,14 @@
 +    {
 +      int nslots = list_length (inits);
 +      tree atype = build_cplus_array_type (vtbl_slot_copy_type_node,
-+					   build_index_type (size_int (nslots)));
++					   build_index_type (size_int (nslots - 1)));
 +      layout_type (atype);
++      TYPE_ALIGN (atype) = BITS_PER_UNIT * 4;
 +
 +      d = build_lang_decl (VAR_DECL, name, atype);
 +      DECL_VTRELOC_INIT(d) = 1;
++      DECL_ALIGN(d) = 1;
++      DECL_USER_ALIGN(d) = 1;
 +      DECL_SECTION_NAME(d) = mangle_vtreloc_section_for_type (t);
 +      SET_DECL_ASSEMBLER_NAME (d, name);
 +      /* Remember the type it is for.  */
@@ -102,7 +105,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
-@@ -6637,6 +6680,140 @@
+@@ -6637,6 +6683,140 @@
    dump_thunk (stderr, 0, fn);
  }
  
@@ -243,7 +246,7 @@
  /* Virtual function table initialization.  */
  
  /* Create all the necessary vtables for T and its base classes.  */
-@@ -6647,19 +6824,30 @@
+@@ -6647,19 +6827,30 @@
    tree list;
    tree vbase;
  
@@ -276,7 +279,7 @@
      }
  
    if (BINFO_VTABLE (TYPE_BINFO (t)))
-@@ -6676,6 +6864,10 @@
+@@ -6676,6 +6867,10 @@
    layout_vtable_decl (binfo, list_length (inits));
    decl = get_vtbl_decl_for_binfo (binfo);
    initialize_artificial_var (decl, inits);
@@ -287,7 +290,7 @@
    dump_vtable (BINFO_TYPE (binfo), binfo, decl);
  }
  
-@@ -6945,6 +7137,7 @@
+@@ -6945,6 +7140,7 @@
    tree inits;
    tree id;
    tree vbase;
@@ -295,7 +298,7 @@
  
    /* See if we've already created this construction vtable group.  */
    id = mangle_ctor_vtbl_for_type (t, binfo);
-@@ -6955,11 +7148,13 @@
+@@ -6955,11 +7151,13 @@
    /* Build a version of VTBL (with the wrong type) for use in
       constructing the addresses of secondary vtables in the
       construction vtable group.  */
@@ -310,7 +313,7 @@
  
    /* Add the vtables for each of our virtual bases using the vbase in T
       binfo.  */
-@@ -6973,7 +7168,7 @@
+@@ -6973,7 +7171,7 @@
  	continue;
        b = copied_binfo (vbase, binfo);
  
@@ -319,7 +322,7 @@
      }
    inits = TREE_VALUE (list);
  
-@@ -6986,6 +7181,11 @@
+@@ -6986,6 +7184,11 @@
    CLASSTYPE_VTABLES (t) = chainon (CLASSTYPE_VTABLES (t), vtbl);
    initialize_artificial_var (vtbl, inits);
    dump_vtable (t, binfo, vtbl);
@@ -331,7 +334,7 @@
  }
  
  /* Add the vtbl initializers for BINFO (and its bases other than
-@@ -7003,7 +7203,8 @@
+@@ -7003,7 +7206,8 @@
  		       tree orig_binfo,
  		       tree rtti_binfo,
  		       tree t,
@@ -341,7 +344,7 @@
  {
    int i;
    tree base_binfo;
-@@ -7026,7 +7227,7 @@
+@@ -7026,7 +7230,7 @@
    TREE_VALUE (inits)
      = chainon (TREE_VALUE (inits),
  	       dfs_accumulate_vtbl_inits (binfo, orig_binfo,
@@ -350,7 +353,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 +7242,7 @@
+@@ -7041,7 +7245,7 @@
        accumulate_vtbl_inits (base_binfo,
  			     BINFO_BASE_BINFO (orig_binfo, i),
  			     rtti_binfo, t,
@@ -359,7 +362,7 @@
      }
  }
  
-@@ -7053,7 +7254,8 @@
+@@ -7053,7 +7257,8 @@
  			   tree orig_binfo,
  			   tree rtti_binfo,
  			   tree t,
@@ -369,7 +372,7 @@
  {
    tree inits = NULL_TREE;
    tree vtbl = NULL_TREE;
-@@ -7120,7 +7322,7 @@
+@@ -7120,7 +7325,7 @@
  
        /* Compute the initializer for this vtable.  */
        inits = build_vtbl_initializer (binfo, orig_binfo, t, rtti_binfo,
@@ -378,7 +381,7 @@
  
        /* Figure out the position to which the VPTR should point.  */
        vtbl = TREE_PURPOSE (l);
-@@ -7154,6 +7356,40 @@
+@@ -7154,6 +7359,40 @@
    return inits;
  }
  
@@ -419,7 +422,7 @@
  static GTY(()) tree abort_fndecl_addr;
  
  /* Construct the initializer for BINFO's virtual function table.  BINFO
-@@ -7184,7 +7420,8 @@
+@@ -7184,7 +7423,8 @@
  			tree orig_binfo,
  			tree t,
  			tree rtti_binfo,
@@ -429,7 +432,7 @@
  {
    tree v, b;
    tree vfun_inits;
-@@ -7192,6 +7429,8 @@
+@@ -7192,6 +7432,8 @@
    unsigned ix;
    tree vbinfo;
    VEC(tree,gc) *vbases;
@@ -438,7 +441,7 @@
  
    /* Initialize VID.  */
    memset (&vid, 0, sizeof (vid));
-@@ -7213,7 +7452,7 @@
+@@ -7213,7 +7455,7 @@
       signature, we share the vcall offsets.  */
    vid.fns = VEC_alloc (tree, gc, 32);
    /* Add the vcall and vbase offset entries.  */
@@ -447,7 +450,7 @@
  
    /* Clear BINFO_VTABLE_PATH_MARKED; it's set by
       build_vbase_offset_vtbl_entries.  */
-@@ -7240,18 +7479,52 @@
+@@ -7240,18 +7482,52 @@
  	}
      }
  
@@ -501,7 +504,7 @@
  
        fn = BV_FN (v);
        fn_original = fn;
-@@ -7281,7 +7554,10 @@
+@@ -7281,7 +7557,10 @@
  	{
  	  /* We found a defn before a lost primary; go ahead as normal.  */
  	  if (look_for_overrides_here (BINFO_TYPE (b), fn_original))
@@ -513,7 +516,7 @@
  
  	  /* The nearest definition is from a lost primary; clear the
  	     slot.  */
-@@ -7299,6 +7575,9 @@
+@@ -7299,6 +7578,9 @@
  	  delta = BV_DELTA (v);
  	  vcall_index = BV_VCALL_INDEX (v);
  
@@ -523,7 +526,7 @@
  	  gcc_assert (TREE_CODE (delta) == INTEGER_CST);
  	  gcc_assert (TREE_CODE (fn) == FUNCTION_DECL);
  
-@@ -7319,9 +7598,40 @@
+@@ -7319,9 +7601,40 @@
  		  if (!DECL_NAME (fn))
  		    finish_thunk (fn);
  		}
@@ -567,7 +570,7 @@
  	    }
  	}
  
-@@ -7346,8 +7656,34 @@
+@@ -7346,8 +7659,34 @@
  	}
        else
  	vfun_inits = tree_cons (NULL_TREE, init, vfun_inits);
@@ -602,7 +605,7 @@
    /* The initializers for virtual functions were built up in reverse
       order; straighten them out now.  */
    vfun_inits = nreverse (vfun_inits);
-@@ -7363,7 +7699,8 @@
+@@ -7363,7 +7702,8 @@
     offsets in BINFO, which is in the hierarchy dominated by T.  */
  
  static void
@@ -612,7 +615,7 @@
  {
    tree b;
  
-@@ -7371,10 +7708,17 @@
+@@ -7371,10 +7711,17 @@
       corresponding to the primary base class.  */
    b = get_primary_binfo (binfo);
    if (b)
@@ -732,7 +735,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-16 13:57:18.000000000 +0000
++++ gcc-4.2.1-simple/gcc/cp/decl2.c	2008-01-16 18:13:11.000000000 +0000
 @@ -1530,6 +1530,26 @@
       info.  */
    note_debug_info_needed (ctype);
@@ -767,7 +770,7 @@
 +static void
 +generate_vtable_copy_slots (void)
 +{
-+  tree k, decl;
++  tree k;
 +
 +  if (!getenv ("VT_SHRINK"))
 +      return;
@@ -792,8 +795,8 @@
 +	  TREE_PUBLIC (decl) = 0;
 +	  DECL_WEAK (decl) = 1;
 +	  DECL_INTERFACE_KNOWN (decl) = 1;
-+	  /*	    mark_used (decl); */
-+	  /*	    rest_of_decl_compilation (decl, 1, 1); */
++	  DECL_ALIGN (decl) = 4;
++	  DECL_ALIGN (ctor) = 4;
 +	  finish_decl (decl, ctor, NULL_TREE);
 +	  
 +	  fprintf (stderr, "Generate vtreloc variable '%s' comdat? %d",
@@ -883,3 +886,25 @@
  /* In a VAR_DECL, nonzero if the decl is a register variable with
     an explicit asm specification.  */
  #define DECL_HARD_REGISTER(NODE)  (VAR_DECL_CHECK (NODE)->decl_with_vis.hard_register)
+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/varasm.c gcc-4.2.1-simple/gcc/varasm.c
+--- pristine-gcc-4.2.1-simple/gcc/varasm.c	2008-01-10 09:49:03.000000000 +0000
++++ gcc-4.2.1-simple/gcc/varasm.c	2008-01-17 11:08:40.000000000 +0000
+@@ -1550,6 +1550,8 @@
+ void
+ assemble_align (int align)
+ {
++  if (getenv ("DEBUG"))
++    fprintf (stderr, "assemble align %d\n", align);
+   if (align > BITS_PER_UNIT)
+     {
+       ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (align / BITS_PER_UNIT));
+@@ -1564,6 +1566,9 @@
+   int pos = 0;
+   int maximum = 2000;
+ 
++  if (getenv ("DEBUG"))
++    fprintf (stderr, "assemble string '%s'\n", p);
++
+   /* If the string is very long, split it up.  */
+ 
+   while (pos < size)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]