diff options
author | Daniel Jacobowitz <drow@false.org> | 2010-03-24 21:06:33 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2010-03-24 21:06:33 +0000 |
commit | a6c727b2f1c9804ca95ebc61de518246d03abb37 (patch) | |
tree | 6ba99723ff001306b83dbd7a030dbd4a2835505f /gdb/symtab.c | |
parent | 0d39a07082291dc1bfc36568ea6a60a78739db41 (diff) | |
download | gdb-a6c727b2f1c9804ca95ebc61de518246d03abb37.zip gdb-a6c727b2f1c9804ca95ebc61de518246d03abb37.tar.gz gdb-a6c727b2f1c9804ca95ebc61de518246d03abb37.tar.bz2 |
* dwarf2-frame.c (dwarf2_frame_find_quirks): Use producer_is_realview.
* dwarf2read.c (load_full_comp_unit): Read DW_AT_producer.
(read_structure_type): For RealView, set TYPE_STUB on structures with
no byte size and no children.
(read_subroutine_type): Mark functions as prototyped by default.
* symtab.c (producer_is_realview): New function.
* symtab.h (expand_line_sal): Fix declaration formatting.
(producer_is_realview): Declare.
testsuite/
* gdb.base/callfuncs.exp (do_function_calls): Add XFAILs for RealView.
* gdb.base/ptype.exp (ptype_maybe_prototyped): Add overprototyped
argument. Handle "short" and "long".
(Top level): Pass overprototyped output for old_fptr and xptr.
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r-- | gdb/symtab.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c index 78118ee..ecf0cb6 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -4424,6 +4424,31 @@ expand_line_sal (struct symtab_and_line sal) return ret; } +/* Return 1 if the supplied producer string matches the ARM RealView + compiler (armcc). */ + +int +producer_is_realview (const char *producer) +{ + static const char *const arm_idents[] = { + "ARM C Compiler, ADS", + "Thumb C Compiler, ADS", + "ARM C++ Compiler, ADS", + "Thumb C++ Compiler, ADS", + "ARM/Thumb C/C++ Compiler, RVCT", + "ARM C/C++ Compiler, RVCT" + }; + int i; + + if (producer == NULL) + return 0; + + for (i = 0; i < ARRAY_SIZE (arm_idents); i++) + if (strncmp (producer, arm_idents[i], strlen (arm_idents[i])) == 0) + return 1; + + return 0; +} void _initialize_symtab (void) |