rpms/gcc/devel gcc4-dwarf2-inline-details.patch, NONE, 1.1 .cvsignore, 1.105, 1.106 gcc4.spec, 1.64, 1.65 sources, 1.107, 1.108 gcc4-pr23299.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Aug 17 12:07:46 UTC 2005


Author: jakub

Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv12920

Modified Files:
	.cvsignore gcc4.spec sources 
Added Files:
	gcc4-dwarf2-inline-details.patch 
Removed Files:
	gcc4-pr23299.patch 
Log Message:
4.0.1-9


gcc4-dwarf2-inline-details.patch:
 dwarf2out.c   |   25 ++++++++++++++++++++++++-
 tree-inline.c |    3 ++-
 tree.h        |    7 +++++++
 3 files changed, 33 insertions(+), 2 deletions(-)

--- NEW FILE gcc4-dwarf2-inline-details.patch ---
2005-07-25  James E Wilson  <wilson at specifixinc.com>

	* dwarf2out.c (add_call_src_coords_attributes): New.
	(gen_inlined_subroutine_die): Call it.
	(maybe_emit_file, init_file_table): Add comments.
	(prune_unused_types_walk_attribs): Pass DW_AT_call_file through
	maybe_emit_file.
	* tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
	(expand_call_inline): Set BLOCK_SOURCE_LOCATION.
	* tree.h (BLOCK_SOURCE_LOCATION): New.
	(struct tree_block): New field locus.

--- gcc/dwarf2out.c	24 Jul 2005 16:33:53 -0000	1.607
+++ gcc/dwarf2out.c	26 Jul 2005 02:56:42 -0000	1.608
@@ -11757,6 +11757,20 @@ gen_label_die (tree decl, dw_die_ref con
     }
 }
 
+/* A helper function for gen_inlined_subroutine_die.  Add source coordinate
+   attributes to the DIE for a block STMT, to describe where the inlined
+   function was called from.  This is similar to add_src_coords_attributes.  */
+
+static inline void
+add_call_src_coords_attributes (tree stmt, dw_die_ref die)
+{
+  expanded_location s = expand_location (BLOCK_SOURCE_LOCATION (stmt));
+  unsigned file_index = lookup_filename (s.file);
+
+  add_AT_unsigned (die, DW_AT_call_file, file_index);
+  add_AT_unsigned (die, DW_AT_call_line, s.line);
+}
+
 /* A helper function for gen_lexical_block_die and gen_inlined_subroutine_die.
    Add low_pc and high_pc attributes to the DIE for a block STMT.  */
 
@@ -11824,6 +11838,7 @@ gen_inlined_subroutine_die (tree stmt, d
 
       add_abstract_origin_attribute (subr_die, decl);
       add_high_low_attributes (stmt, subr_die);
+      add_call_src_coords_attributes (stmt, subr_die);
 
       decls_for_scope (stmt, subr_die, depth);
       current_function_has_inlines = 1;
@@ -13247,6 +13262,12 @@ lookup_filename (const char *file_name)
   return i;
 }
 
+/* If the assembler will construct the file table, then translate the compiler
+   internal file table number into the assembler file table number, and emit
+   a .file directive if we haven't already emitted one yet.  The file table
+   numbers are different because we prune debug info for unused variables and
+   types, which may include filenames.  */
+
 static int
 maybe_emit_file (int fileno)
 {
@@ -13267,6 +13288,8 @@ maybe_emit_file (int fileno)
     return fileno;
 }
 
+/* Initialize the compiler internal file table.  */
+
 static void
 init_file_table (void)
 {
@@ -13644,7 +13667,7 @@ prune_unused_types_walk_attribs (dw_die_
 	     Make sure that it will get emitted.  */
 	  prune_unused_types_mark (a->dw_attr_val.v.val_die_ref.die, 1);
 	}
-      else if (a->dw_attr == DW_AT_decl_file)
+      else if (a->dw_attr == DW_AT_decl_file || a->dw_attr == DW_AT_call_file)
 	{
 	  /* A reference to a file.  Make sure the file name is emitted.  */
 	  a->dw_attr_val.v.val_unsigned =
--- gcc/tree-inline.c	22 Jul 2005 18:09:34 -0000	1.206
+++ gcc/tree-inline.c	26 Jul 2005 02:56:44 -0000	1.207
@@ -421,6 +421,7 @@ remap_block (tree *block, inline_data *i
   new_block = make_node (BLOCK);
   TREE_USED (new_block) = TREE_USED (old_block);
   BLOCK_ABSTRACT_ORIGIN (new_block) = old_block;
+  BLOCK_SOURCE_LOCATION (new_block) = BLOCK_SOURCE_LOCATION (old_block);
   *block = new_block;
 
   /* Remap its variables.  */
@@ -2025,9 +2026,9 @@ expand_call_inline (basic_block bb, tree
      statement expression is the return type of the function call.  */
   id->block = make_node (BLOCK);
   BLOCK_ABSTRACT_ORIGIN (id->block) = fn;
+  BLOCK_SOURCE_LOCATION (id->block) = input_location;
   add_lexical_block (TREE_BLOCK (stmt), id->block);
 
-
   /* Local declarations will be replaced by their equivalents in this
      map.  */
   st = id->decl_map;
--- gcc/tree.h	25 Jul 2005 12:04:54 -0000	1.749
+++ gcc/tree.h	26 Jul 2005 02:56:44 -0000	1.750
@@ -1570,6 +1570,12 @@ struct varray_head_tag;
 #define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
 #define BLOCK_FRAGMENT_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_chain)
 
+/* For an inlined function, this gives the location where it was called
+   from.  This is only set in the top level block, which corresponds to the
+   inlined function scope.  This is used in the debug output routines.  */
+
+#define BLOCK_SOURCE_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.locus)
+
 struct tree_block GTY(())
 {
   struct tree_common common;
@@ -1584,6 +1590,7 @@ struct tree_block GTY(())
   tree abstract_origin;
   tree fragment_origin;
   tree fragment_chain;
+  location_t locus;
 };
 
 /* Define fields and accessors for nodes representing data types.  */


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -r1.105 -r1.106
--- .cvsignore	10 Aug 2005 21:18:25 -0000	1.105
+++ .cvsignore	17 Aug 2005 12:07:43 -0000	1.106
@@ -1 +1 @@
-gcc-4.0.1-20050810.tar.bz2
+gcc-4.0.1-20050817.tar.bz2


Index: gcc4.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4.spec,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- gcc4.spec	10 Aug 2005 21:18:25 -0000	1.64
+++ gcc4.spec	17 Aug 2005 12:07:43 -0000	1.65
@@ -1,6 +1,6 @@
-%define DATE 20050810
+%define DATE 20050817
 %define gcc_version 4.0.1
-%define gcc_release 8
+%define gcc_release 9
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} alpha ia64 x86_64 s390 sparc sparc64
@@ -103,7 +103,7 @@
 Patch21: gcc4-libffi-x86.patch
 Patch22: gcc4-ppc32-msecure-plt.patch
 Patch23: gcc4-pr17828-test.patch
-Patch24: gcc4-pr23299.patch
+Patch24: gcc4-dwarf2-inline-details.patch
 Patch25: gcc4-dwarf2-usefbreg.patch
 Patch26: gcc4-dwarf2-prefer-1elt-vartracking.patch
 
@@ -438,7 +438,7 @@
 %patch21 -p0 -b .libffi-x86~
 %patch22 -p0 -b .ppc32-msecure-plt~
 %patch23 -p0 -b .pr17828-test~
-%patch24 -p0 -b .pr23299~
+%patch24 -p0 -b .dwarf2-inline-details~
 %patch25 -p0 -b .dwarf2-usefbreg~
 %patch26 -p0 -b .dwarf2-prefer-1elt-vartracking~
 
@@ -948,6 +948,16 @@
 	  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version} \
 	  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
 touch $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+
+# Check if gcj-dbtool hasn't been incorrectly relinked.  #165781
+classmap_db=`LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_prefix}/%{_lib}:$RPM_BUILD_ROOT/%{_lib} \
+	     gcj-dbtool -p`
+case "$classmap_db" in
+  # Which one of these 2 is right?
+  %{_prefix}/lib/gcj-%{version}/classmap.db) ;;
+  %{_prefix}/%{_lib}/gcj-%{version}/classmap.db) ;;
+  *) echo Unexpected gcj-dbtool -p output; exit 1 ;;
+esac
 %endif
 
 %clean
@@ -1468,6 +1478,15 @@
 %endif
 
 %changelog
+* Wed Aug 17 2005 Jakub Jelinek  <jakub at redhat.com> 4.0.1-9
+- update from CVS
+  - PRs c++/21799, c++/23219, c++/23266, c++/23337, c++/8271, fortran/21432,
+	java/23230, libfortran/23428, libgcj/23353, middle-end/23312,
+	middle-end/23369, target/21841, target/23250, tree-optimization/21105
+- emit DWARF3 DW_AT_call_file and DW_AT_call_line attributes for inlines
+  (Jim Wilson)
+- rebuilt against new libcairo.so
+
 * Wed Aug 10 2005 Jakub Jelinek  <jakub at redhat.com> 4.0.1-8
 - update from CVS
   - PRs middle-end/21894, middle-end/22439, target/23309, c++/20646,


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- sources	10 Aug 2005 21:18:25 -0000	1.107
+++ sources	17 Aug 2005 12:07:43 -0000	1.108
@@ -1 +1 @@
-03206f00f288097d5afd3d65dd3403a3  gcc-4.0.1-20050810.tar.bz2
+4a52e62261db6ba039ce1b863f4f191c  gcc-4.0.1-20050817.tar.bz2


--- gcc4-pr23299.patch DELETED ---




More information about the fedora-cvs-commits mailing list