diff options
Diffstat (limited to 'gdb/buildsym.c')
-rw-r--r-- | gdb/buildsym.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c index e4dcbdd..fc03378 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -439,23 +439,26 @@ start_subfile (name, dirname) of any pending subfiles from C to C++. We also accept any other C++ suffixes accepted by deduce_language_from_filename (in particular, some people use .cxx with cfront). */ + /* Likewise for f2c. */ if (subfile->name) { struct subfile *s; + enum language sublang = deduce_language_from_filename (subfile->name); - if (deduce_language_from_filename (subfile->name) == language_cplus) + if (sublang == language_cplus || sublang == language_fortran) for (s = subfiles; s != NULL; s = s->next) if (s->language == language_c) - s->language = language_cplus; + s->language = sublang; } /* And patch up this file if necessary. */ if (subfile->language == language_c && subfile->next != NULL - && subfile->next->language == language_cplus) + && (subfile->next->language == language_cplus + || subfile->next->language == language_fortran)) { - subfile->language = language_cplus; + subfile->language = subfile->next->language; } } |