diff options
author | Pedro Alves <palves@redhat.com> | 2015-08-20 12:30:08 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-08-20 12:30:08 +0100 |
commit | 40e3ad0ebb0c71008b928d6d350e9258dc1dcf2a (patch) | |
tree | 162374e0eae01a1ab9f41f8752f9c42a23d9f019 /gdb/dwarf2read.c | |
parent | af39b3270a1385027b2a5d145b9ba7564bd39f7a (diff) | |
download | gdb-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.c | 2 |
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 |