johannes    02/11/11 14:16:09

  Modified:    live/gcc3/gcc Tag: fearless-kitty-branch tree.c c-common.c
                        dbxout.c
  Log:
  move debug info fixes in fearless-kitty:
  2947813 2985457 2997607 3047765 3067314
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.39.4.3  +9 -4      src/live/gcc3/gcc/tree.c
  
  Index: tree.c
  ===================================================================
  RCS file: /cvs/Darwin/src/live/gcc3/gcc/tree.c,v
  retrieving revision 1.39.4.2
  retrieving revision 1.39.4.3
  diff -u -r1.39.4.2 -r1.39.4.3
  --- tree.c    2002/09/30 21:39:35     1.39.4.2
  +++ tree.c    2002/11/11 22:15:55     1.39.4.3
  @@ -4813,8 +4813,13 @@
   
     {
       tree index = build_int_2 (TYPE_VECTOR_SUBPARTS (t) - 1, 0);
  -    tree array = build_array_type (TREE_TYPE (t),
  -                                build_index_type (index));
  +    /* APPLE LOCAL AltiVec */
  +    /* Use unsigned_char_type rather than int_QI_type, etc.
  +       so debug info is common with nonvector unsigned char */
  +    tree array = build_array_type (
  +             (*lang_hooks.types.type_for_mode) (TYPE_MODE (TREE_TYPE (t)),
  +                                                TREE_UNSIGNED (TREE_TYPE (t))),
  +             build_index_type (index));
       tree rt = make_node (RECORD_TYPE);
   
       TYPE_FIELDS (rt) = build_decl (FIELD_DECL, get_identifier ("f"), array);
  @@ -4970,7 +4975,7 @@
   
     /* APPLE LOCAL begin AltiVec */
     unsigned_VPIXEL_type_node 
  -    = make_vector (V4HImode, unsigned_intHI_type_node, 1);
  +    = make_vector (V8HImode, unsigned_intHI_type_node, 1);
     /* The 'vector bool...' and 'vector unsigned...' types are the
        same as far as the back-end is concerned, but are distinct
        for purposes of C/C++ type resolution.  */  
  @@ -5001,7 +5006,7 @@
      set to V4SImode, irrespective of input param mode.  */
   static tree
   make_vector (mode, innertype, unsignedp)
  -     enum machine_mode mode ATTRIBUTE_UNUSED;
  +     enum machine_mode mode;
        tree innertype;
        int unsignedp;
   {
  
  
  
  1.64.2.2  +8 -0      src/live/gcc3/gcc/c-common.c
  
  Index: c-common.c
  ===================================================================
  RCS file: /cvs/Darwin/src/live/gcc3/gcc/c-common.c,v
  retrieving revision 1.64.2.1
  retrieving revision 1.64.2.2
  diff -u -r1.64.2.1 -r1.64.2.2
  --- c-common.c        2002/10/09 02:02:16     1.64.2.1
  +++ c-common.c        2002/11/11 22:15:58     1.64.2.2
  @@ -662,6 +662,13 @@
     if (!decl)
       {
         tree saved_last_tree = last_tree;
  +      /* If a tree is built here, it would normally have the lineno of
  +      the current statement.  Later this tree will be moved to the
  +      beginning of the function and this line number will be wrong.
  +      To avoid this problem set the lineno to 0 here; that prevents
  +      it from appearing in the RTL.  */
  +      int saved_lineno = lineno;
  +      lineno = 0;
         
         decl = (*make_fname_decl) (id, fname_vars[ix].pretty);
         if (last_tree != saved_last_tree)
  @@ -677,6 +684,7 @@
                                                 saved_function_name_decls);
        }
         *fname_vars[ix].decl = decl;
  +      lineno = saved_lineno;
       }
     if (!ix && !current_function_decl)
       pedwarn_with_decl (decl, "`%s' is not defined outside of function scope");
  
  
  
  1.23.2.3  +4 -2      src/live/gcc3/gcc/dbxout.c
  
  Index: dbxout.c
  ===================================================================
  RCS file: /cvs/Darwin/src/live/gcc3/gcc/dbxout.c,v
  retrieving revision 1.23.2.2
  retrieving revision 1.23.2.3
  diff -u -r1.23.2.2 -r1.23.2.3
  --- dbxout.c  2002/10/17 19:57:11     1.23.2.2
  +++ dbxout.c  2002/11/11 22:16:01     1.23.2.3
  @@ -1374,7 +1374,9 @@
     static int anonymous_type_number = 0;
   
     if (TREE_CODE (type) == VECTOR_TYPE)
  -    type = TYPE_DEBUG_REPRESENTATION_TYPE (type);
  +      /* The frontend feeds us a representation for the vector as a struct
  +      containing an array.  Pull out the array type.  */
  +    type = TREE_TYPE (TYPE_FIELDS (TYPE_DEBUG_REPRESENTATION_TYPE (type)));
   
     /* If there was an input error and we don't really have a type,
        avoid crashing and write something that is at least valid
  @@ -2222,7 +2224,7 @@
       {
         tree t;
         
  -      if (!TREE_USED (decl))
  +      if (!TREE_USED (decl) && !DECL_INITIAL (decl))
           DBXOUT_DECR_NESTING_AND_RETURN (0);
           
         /* We now have a used symbol.  We need to generate the info for
  
  
  


Reply via email to