aboutsummaryrefslogtreecommitdiff
path: root/gdb/symtab.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2010-03-24 21:06:33 +0000
committerDaniel Jacobowitz <drow@false.org>2010-03-24 21:06:33 +0000
commita6c727b2f1c9804ca95ebc61de518246d03abb37 (patch)
tree6ba99723ff001306b83dbd7a030dbd4a2835505f /gdb/symtab.c
parent0d39a07082291dc1bfc36568ea6a60a78739db41 (diff)
downloadgdb-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.c25
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)