This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 02/16] source: add flags to print_source_lines ()
- From: markus dot t dot metzger at intel dot com
- To: kettenis at gnu dot org
- Cc: gdb-patches at sourceware dot org, markus dot t dot metzger at gmail dot com, Markus Metzger <markus dot t dot metzger at intel dot com>
- Date: Wed, 23 May 2012 13:22:17 +0200
- Subject: [PATCH 02/16] source: add flags to print_source_lines ()
- References: <1337772151-20265-1-git-send-email-markus.t.metzger@intel.com>
From: Markus Metzger <markus.t.metzger@intel.com>
The 4th parameter of print_source_lines is a boolean flag noerror. Generalize
this to be a bit vector of flags and make noerror one of the flag bits.
2012-05-23 Markus Metzger <markus.t.metzger@intel.com>
gdb/
* symtab.h (print_source_lines_flags): New enum
* source.c (print_source_lines_base): Change noerror to flags
(print_source_lines): Change noerror to flags
---
gdb/source.c | 14 ++++++--------
gdb/symtab.h | 5 +++++
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/gdb/source.c b/gdb/source.c
index 27c5b0e..4dd7ed2 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -1225,10 +1225,8 @@ identify_source_line (struct symtab *s, int line, int mid_statement,
/* Print source lines from the file of symtab S,
starting with line number LINE and stopping before line number STOPLINE. */
-static void print_source_lines_base (struct symtab *s, int line, int stopline,
- int noerror);
static void
-print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
+print_source_lines_base (struct symtab *s, int line, int stopline, int flags)
{
int c;
int desc;
@@ -1256,13 +1254,13 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
else
{
desc = last_source_error;
- noerror = 1;
+ flags |= PRINT_SOURCE_LINES_NOERROR;
}
}
else
{
desc = last_source_error;
- noerror = 1;
+ flags |= PRINT_SOURCE_LINES_NOERROR;
noprint = 1;
}
@@ -1270,7 +1268,7 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
{
last_source_error = desc;
- if (!noerror)
+ if (!(flags & PRINT_SOURCE_LINES_NOERROR))
{
char *name = alloca (strlen (s->filename) + 100);
sprintf (name, "%d\t%s", line, s->filename);
@@ -1356,9 +1354,9 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
window otherwise it is simply printed. */
void
-print_source_lines (struct symtab *s, int line, int stopline, int noerror)
+print_source_lines (struct symtab *s, int line, int stopline, int flags)
{
- print_source_lines_base (s, line, stopline, noerror);
+ print_source_lines_base (s, line, stopline, flags);
}
/* Print info on range of pc's in a specified line. */
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 526fe5a..a8c57cf 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1143,6 +1143,11 @@ extern void clear_solib (void);
extern int identify_source_line (struct symtab *, int, int, CORE_ADDR);
+/* Flags passed as 4th argument to print_source_lines. */
+enum print_source_lines_flags {
+ PRINT_SOURCE_LINES_NOERROR = (0x1 << 0)
+};
+
extern void print_source_lines (struct symtab *, int, int, int);
extern void forget_cached_source_info_for_objfile (struct objfile *);
--
1.7.1