Fix language of compilation unit with unknown file extension
authorPedro Alves <palves@redhat.com>
Thu, 20 Aug 2015 11:30:08 +0000 (12:30 +0100)
committerPedro Alves <palves@redhat.com>
Thu, 20 Aug 2015 11:30:08 +0000 (12:30 +0100)
commit40e3ad0ebb0c71008b928d6d350e9258dc1dcf2a
tree162374e0eae01a1ab9f41f8752f9c42a23d9f019
parentaf39b3270a1385027b2a5d145b9ba7564bd39f7a
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.
gdb/ChangeLog
gdb/dwarf2read.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/comp-unit-lang.c [new file with mode: 0644]
gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp [new file with mode: 0644]