aboutsummaryrefslogtreecommitdiff
path: root/gdb/symtab.h
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-05-06 15:06:49 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-05-06 15:06:49 +0000
commit8be455d765a7cfb8f2cb045ec80e2b2af1597d15 (patch)
tree590872ecc1332caa71367175d77510db99fa6589 /gdb/symtab.h
parent5b7b7d6e05dc23db02e401ec9fdf6d38cacafc41 (diff)
downloadgdb-8be455d765a7cfb8f2cb045ec80e2b2af1597d15.zip
gdb-8be455d765a7cfb8f2cb045ec80e2b2af1597d15.tar.gz
gdb-8be455d765a7cfb8f2cb045ec80e2b2af1597d15.tar.bz2
gdb/
PR 12573 * dwarf2read.c (struct dwarf2_cu): New field has_loclist. (producer_is_gcc_ge_4_0): New function. (process_full_comp_unit): Set also symtab->locations_valid. Move the symtab->language code. (var_decode_location): Set cu->has_loclist. * symtab.c (skip_prologue_sal): New variables saved_pc, force_skip and skip. Intialize force_skip from locations_valid. Move the prologue skipping code into two passes. * symtab.h (struct symtab): Make the primary field a bitfield. New field locations_valid. gdb/testsuite/ PR 12573 * gdb.dwarf2/dw2-skip-prologue.S: New file. * gdb.dwarf2/dw2-skip-prologue.c: New file. * gdb.dwarf2/dw2-skip-prologue.exp: New file.
Diffstat (limited to 'gdb/symtab.h')
-rw-r--r--gdb/symtab.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 29e7d70..12f52a2 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -770,7 +770,13 @@ struct symtab
should be designated the primary, so that the blockvector
is relocated exactly once by objfile_relocate. */
- int primary;
+ unsigned int primary : 1;
+
+ /* Symtab has been compiled with both optimizations and debug info so that
+ GDB may stop skipping prologues as variables locations are valid already
+ at function entry points. */
+
+ unsigned int locations_valid : 1;
/* The macro table for this symtab. Like the blockvector, this
may be shared between different symtabs --- and normally is for