OSDN Git Service

PR debug/34249
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Jan 2008 11:10:27 +0000 (11:10 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Jan 2008 11:10:27 +0000 (11:10 +0000)
* debug.h (dwarf2out_switch_text_section): Move declaration from ...
* dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
function global.
* final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
for DWARF2_UNWIND_INFO targets.

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

gcc/ChangeLog
gcc/debug.h
gcc/dwarf2out.c
gcc/final.c

index dd099a4..510e56b 100644 (file)
@@ -1,17 +1,19 @@
+2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR debug/34249
+       * debug.h (dwarf2out_switch_text_section): Move declaration from ...
+       * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
+       function global.
+       * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
+       Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
+       for DWARF2_UNWIND_INFO targets.
+
 2008-01-16  Richard Guenther  <rguenther@suse.de>
 
        PR c/34768
        * c-typeck.c (common_pointer_type): Do not merge inconsistent
        type qualifiers for function types.
 
-2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
-
-       * tree-parloops (gen_parallel_loop): Revert my fix.
-
-2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
-
-       * tree-parloops.c (gen_parallel_loop): Fix previous change, declare li.
-
 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
index 03c8041..cab1e26 100644 (file)
@@ -160,6 +160,7 @@ extern void dwarf2out_frame_finish (void);
 /* Decide whether we want to emit frame unwind information for the current
    translation unit.  */
 extern int dwarf2out_do_frame (void);
+extern void dwarf2out_switch_text_section (void);
 
 extern void debug_flush_symbol_queue (void);
 extern void debug_queue_symbol (tree);
index 6c7f75a..7df2b46 100644 (file)
@@ -3659,7 +3659,6 @@ static void dwarf2out_imported_module_or_decl (tree, tree);
 static void dwarf2out_abstract_function (tree);
 static void dwarf2out_var_location (rtx);
 static void dwarf2out_begin_function (tree);
-static void dwarf2out_switch_text_section (void);
 
 /* The debug hooks structure.  */
 
@@ -7094,7 +7093,7 @@ dwarf2out_note_section_used (void)
     cold_text_section_used = true;
 }
 
-static void
+void
 dwarf2out_switch_text_section (void)
 {
   dw_fde_ref fde;
index 72edbc0..a33da0c 100644 (file)
@@ -1777,7 +1777,13 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
 
        case NOTE_INSN_SWITCH_TEXT_SECTIONS:
          in_cold_section_p = !in_cold_section_p;
-         (*debug_hooks->switch_text_section) ();
+#ifdef DWARF2_UNWIND_INFO
+         if (dwarf2out_do_frame ())
+           dwarf2out_switch_text_section ();
+         else
+#endif
+           (*debug_hooks->switch_text_section) ();
+
          switch_to_section (current_function_section ());
          break;