Hello, In some binaries, a DIE named I originating from a compilation unit written in the C++ language can be an implementation of a DIE named S (linked through the DW_AT_specification attribute on I) originating from a compilation unit written in, say, the C language. In that case, when are we looking at I and try to get the scope of S (which the DWARF reader considers as the logical scope of I) get_scope_for_die needs to look at the DW_AT_language attribute carried by the compilation unit DIE of S. At the moment, we wrongly look at the DW_AT_language carried by the compilation unit DIE of I and we deduce the wrong language (C++ instead of C). This patch fixes that. * src/abg-dwarf-reader.cc (get_scope_for_die): Get the language of the DIE from the compilation unit of the DIE itself. * tests/data/test-types-stability/PR27165-libzmq.so.5.2.3: New test input. * tests/data/test-types-stability/PR27165-libzmq.so.5.2.3.debug: Debug information for the new test input. * tests/data/Makefile.am: Add the test inputs above to the source distribution. * tests/test-types-stability.cc (elf_paths): Add the new test inputs to this test harness. Signed-off-by: Dodji Seketeli Applied to master. The patch is big so I am attaching it gzipped here.