* config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 May 2012 16:18:51 +0000 (16:18 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 May 2012 16:18:51 +0000 (16:18 +0000)
pc thunk.
* dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
(dwarf2out_finish): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187105 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/dwarf2/thunk1.C [new file with mode: 0644]

index c7eb3b0..0068c33 100644 (file)
@@ -1,3 +1,10 @@
+2012-05-03  Jason Merrill  <jason@redhat.com>
+
+       * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
+       pc thunk.
+       * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
+       (dwarf2out_finish): Likewise.
+
 2012-05-03  Martin Jambor  <mjambor@suse.cz>
 
        * builtins.c (get_object_alignment_1): Return whether we can determine
index 46daee1..ea37347 100644 (file)
@@ -8619,6 +8619,7 @@ ix86_code_end (void)
                                       NULL_TREE, void_type_node);
       TREE_PUBLIC (decl) = 1;
       TREE_STATIC (decl) = 1;
+      DECL_IGNORED_P (decl) = 1;
 
 #if TARGET_MACHO
       if (TARGET_MACHO)
index 10a5389..10e1ece 100644 (file)
@@ -8085,6 +8085,8 @@ output_aranges (unsigned long aranges_length)
 
       FOR_EACH_VEC_ELT (dw_fde_ref, fde_vec, fde_idx, fde)
        {
+         if (DECL_IGNORED_P (fde->decl))
+           continue;
          if (!fde->in_std_section)
            {
              dw2_asm_output_addr (DWARF2_ADDR_SIZE, fde->dw_fde_begin,
@@ -21897,6 +21899,8 @@ dwarf2out_finish (const char *filename)
 
       FOR_EACH_VEC_ELT (dw_fde_ref, fde_vec, fde_idx, fde)
        {
+         if (DECL_IGNORED_P (fde->decl))
+           continue;
          if (!fde->in_std_section)
            add_ranges_by_labels (comp_unit_die (), fde->dw_fde_begin,
                                  fde->dw_fde_end, &range_list_added);
index 1378ff4..79a53d3 100644 (file)
@@ -1,3 +1,7 @@
+2012-05-03  Jason Merrill  <jason@redhat.com>
+
+       * g++.dg/debug/dwarf2/thunk1.C: New.
+
 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/53186
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/thunk1.C b/gcc/testsuite/g++.dg/debug/dwarf2/thunk1.C
new file mode 100644 (file)
index 0000000..c34373e
--- /dev/null
@@ -0,0 +1,11 @@
+// Test that we don't add the x86 PC thunk to .debug_ranges
+// { dg-do compile { target i?86-*-* } }
+// { dg-options "-g -fpic" }
+// { dg-final { scan-assembler-times "LFB3" 1 } }
+
+template <class T> void f(T t) { }
+
+int main()
+{
+  f(42);
+}