diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-05-06 15:06:49 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-05-06 15:06:49 +0000 |
commit | 8be455d765a7cfb8f2cb045ec80e2b2af1597d15 (patch) | |
tree | 590872ecc1332caa71367175d77510db99fa6589 /gdb/symtab.h | |
parent | 5b7b7d6e05dc23db02e401ec9fdf6d38cacafc41 (diff) | |
download | gdb-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.h | 8 |
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 |