aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2read.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-08-20 12:30:08 +0100
committerPedro Alves <palves@redhat.com>2015-08-20 12:30:08 +0100
commit40e3ad0ebb0c71008b928d6d350e9258dc1dcf2a (patch)
tree162374e0eae01a1ab9f41f8752f9c42a23d9f019 /gdb/dwarf2read.c
parentaf39b3270a1385027b2a5d145b9ba7564bd39f7a (diff)
downloadgdb-40e3ad0ebb0c71008b928d6d350e9258dc1dcf2a.zip
gdb-40e3ad0ebb0c71008b928d6d350e9258dc1dcf2a.tar.gz
gdb-40e3ad0ebb0c71008b928d6d350e9258dc1dcf2a.tar.bz2
Fix language of compilation unit with unknown file extension
Here, in dwarfread.c:process_full_comp_unit: /* Set symtab language to language from DW_AT_language. If the compilation is from a C file generated by language preprocessors, do not set the language if it was already deduced by start_subfile. */ if (!(cu->language == language_c && COMPUNIT_FILETABS (cust)->language != language_c)) COMPUNIT_FILETABS (cust)->language = cu->language; in case start_subfile doesn't manage to deduce a language COMPUNIT_FILETABS(cust)->language ends up as language_unknown, not language_c. So the condition above evals false and we never set the language from the cu's language. gdb/ChangeLog: 2015-08-20 Pedro Alves <palves@redhat.com> * dwarf2read.c (process_full_comp_unit): To tell whether start_subfile managed to deduce a language, test for language_unknown instead of language_c. gdb/testsuite/ChangeLog: 2015-08-20 Pedro Alves <palves@redhat.com> * gdb.dwarf2/comp-unit-lang.exp: New file. * gdb.dwarf2/comp-unit-lang.c: New file.
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r--gdb/dwarf2read.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 4cf0a44..0c61df7 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -8072,7 +8072,7 @@ process_full_comp_unit (struct dwarf2_per_cu_data *per_cu,
compilation is from a C file generated by language preprocessors, do
not set the language if it was already deduced by start_subfile. */
if (!(cu->language == language_c
- && COMPUNIT_FILETABS (cust)->language != language_c))
+ && COMPUNIT_FILETABS (cust)->language != language_unknown))
COMPUNIT_FILETABS (cust)->language = cu->language;
/* GCC-4.0 has started to support -fvar-tracking. GCC-3.x still can