public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [gold commit] Don't complain about the source language when we have pubnames/pubtypes info
@ 2014-05-05 22:26 Cary Coutant
  0 siblings, 0 replies; only message in thread
From: Cary Coutant @ 2014-05-05 22:26 UTC (permalink / raw)
  To: Binutils

Gold currently complains when asked to build a .gdb_index section when
Fortran debug info is present, but it really only needs to understand
the symbol canonicalization rules if the compiler hasn't provided
pubnames/pubtypes sections. This patch moves the language test so that
we complain only if pubnames/pubtypes sections are missing.

-cary


gold/
        * gdb-index.cc (Gdb_index_info_reader): Don't complain about language
        if we have pubnames/pubtypes.


diff --git a/gold/gdb-index.cc b/gold/gdb-index.cc
index 5f1125f..f768827 100644
--- a/gold/gdb-index.cc
+++ b/gold/gdb-index.cc
@@ -357,20 +357,6 @@ Gdb_index_info_reader::visit_top_die(Dwarf_die* die)
       case elfcpp::DW_TAG_compile_unit:
       case elfcpp::DW_TAG_type_unit:
        this->cu_language_ = die->int_attribute(elfcpp::DW_AT_language);
-       // Check for languages that require specialized knowledge to
-       // construct fully-qualified names, that we don't yet support.
-       if (this->cu_language_ == elfcpp::DW_LANG_Ada83
-           || this->cu_language_ == elfcpp::DW_LANG_Fortran77
-           || this->cu_language_ == elfcpp::DW_LANG_Fortran90
-           || this->cu_language_ == elfcpp::DW_LANG_Java
-           || this->cu_language_ == elfcpp::DW_LANG_Ada95
-           || this->cu_language_ == elfcpp::DW_LANG_Fortran95)
-         {
-           gold_warning(_("%s: --gdb-index currently supports "
-                          "only C and C++ languages"),
-                        this->object()->name().c_str());
-           return;
-         }
        if (die->tag() == elfcpp::DW_TAG_compile_unit)
          this->record_cu_ranges(die);
        // If there is a pubnames and/or pubtypes section for this
@@ -378,6 +364,20 @@ Gdb_index_info_reader::visit_top_die(Dwarf_die* die)
        // info to extract the names.
        if (!this->read_pubnames_and_pubtypes(die))
          {
+           // Check for languages that require specialized knowledge to
+           // construct fully-qualified names, that we don't yet support.
+           if (this->cu_language_ == elfcpp::DW_LANG_Ada83
+               || this->cu_language_ == elfcpp::DW_LANG_Fortran77
+               || this->cu_language_ == elfcpp::DW_LANG_Fortran90
+               || this->cu_language_ == elfcpp::DW_LANG_Java
+               || this->cu_language_ == elfcpp::DW_LANG_Ada95
+               || this->cu_language_ == elfcpp::DW_LANG_Fortran95)
+             {
+               gold_warning(_("%s: --gdb-index currently supports "
+                              "only C and C++ languages"),
+                            this->object()->name().c_str());
+               return;
+             }
            if (die->tag() == elfcpp::DW_TAG_compile_unit)
              ++Gdb_index_info_reader::dwarf_cu_nopubnames_count;
            else
@@ -392,7 +392,6 @@ Gdb_index_info_reader::visit_top_die(Dwarf_die* die)
                     this->object()->name().c_str());
        return;
     }
-
 }

 // Visit the children of PARENT, looking for symbols to add to the index.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-05-05 22:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-05 22:26 [gold commit] Don't complain about the source language when we have pubnames/pubtypes info Cary Coutant

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).