aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/psymtab.c16
2 files changed, 16 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 62cc127..6986d02 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-08 Doug Evans <dje@google.com>
+
+ * psymtab.c (expand_symtabs_matching_via_partial): Fix file name
+ matching test.
+
2013-05-08 Joel Brobecker <brobecker@adacore.com>
* sol-thread.c (info_cb): Factorize the code a little.
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 878bd82..3a1b993 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1400,15 +1400,21 @@ expand_symtabs_matching_via_partial
if (file_matcher)
{
+ int match;
+
if (ps->anonymous)
continue;
- /* Before we invoke realpath, which can get expensive when many
- files are involved, do a quick comparison of the basenames. */
- if (!(*file_matcher) (ps->filename, data, 0)
- && (basenames_may_differ
+ match = (*file_matcher) (ps->filename, data, 0);
+ if (!match)
+ {
+ /* Before we invoke realpath, which can get expensive when many
+ files are involved, do a quick comparison of the basenames. */
+ if (basenames_may_differ
|| (*file_matcher) (lbasename (ps->filename), data, 1))
- && !(*file_matcher) (psymtab_to_fullname (ps), data, 0))
+ match = (*file_matcher) (psymtab_to_fullname (ps), data, 0);
+ }
+ if (!match)
continue;
}