gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 16 Mar 2012 18:26:02 +0000 (18:26 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 16 Mar 2012 18:26:02 +0000 (18:26 +0000)
PR symtab/13777
* dwarf2read.c (process_full_comp_unit): Set LOCATIONS_VALID only for
GCC >=4.5.

gdb/testsuite/
PR symtab/13777
* gdb.dwarf2/dw2-skip-prologue.S (DW_AT_producer): Set it to 4.5.0.

gdb/ChangeLog
gdb/dwarf2read.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S

index 8368c07ef97df83c77404d9d5901d73e7da4bb4d..7325047b2b29c616729b92d8b05cfc1ce956832a 100644 (file)
@@ -1,3 +1,9 @@
+2012-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR symtab/13777
+       * dwarf2read.c (process_full_comp_unit): Set LOCATIONS_VALID only for
+       GCC >=4.5.
+
 2012-03-16  Chris January  <chris.january@allinea.com>
 
        * tui-tui.win.c (tui_resize_all): Use erase and clearok instead
index 7944e0f9a0d09c5cd39ab1113451c405cb5bf94d..2eb5f40f3d98d5dcff4b589bea106053f5bf50cf 100644 (file)
@@ -4868,7 +4868,9 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
 
       /* GCC-4.0 has started to support -fvar-tracking.  GCC-3.x still can
         produce DW_AT_location with location lists but it can be possibly
-        invalid without -fvar-tracking.
+        invalid without -fvar-tracking.  Still up to GCC-4.4.x incl. 4.4.0
+        there were bugs in prologue debug info, fixed later in GCC-4.5
+        by "unwind info for epilogues" patch (which is not directly related).
 
         For -gdwarf-4 type units LOCATIONS_VALID indication is fortunately not
         needed, it would be wrong due to missing DW_AT_producer there.
@@ -4876,7 +4878,7 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
         Still one can confuse GDB by using non-standard GCC compilation
         options - this waits on GCC PR other/32998 (-frecord-gcc-switches).
         */ 
-      if (cu->has_loclist && gcc_4_minor >= 0)
+      if (cu->has_loclist && gcc_4_minor >= 5)
        symtab->locations_valid = 1;
 
       if (gcc_4_minor >= 5)
index f4a75ddb28105cff0b72bdf6fb5e9209598aeec3..eacbbba89a8cd11dfb678699d13d5ea53675722f 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR symtab/13777
+       * gdb.dwarf2/dw2-skip-prologue.S (DW_AT_producer): Set it to 4.5.0.
+
 2012-03-16  Joel Brobecker  <brobecker@adacore.com>
 
        * gdb.ada/set_pckd_arr_elt: New testcase.
index 1d2c006c4ffbf344cf7f8b61e8629837a3fbc795..725c6947d151659df7216c45e2bc9eb5d25baf3c 100644 (file)
@@ -30,7 +30,7 @@
        .4byte  func_start                      /* DW_AT_low_pc */
        .4byte  func_end                        /* DW_AT_high_pc */
        .ascii  "main.c\0"                      /* DW_AT_name */
-       .ascii  "GNU C 4.0.0\0"                 /* DW_AT_producer must be >= 4.0  */
+       .ascii  "GNU C 4.5.0\0"                 /* DW_AT_producer must be >= 4.5  */
        .byte   2                               /* DW_AT_language (DW_LANG_C) */
 
        .uleb128        2                       /* Abbrev: DW_TAG_subprogram */