Fix C++ build for Cygwin
[deliverable/binutils-gdb.git] / bfd / format.c
index dd6dc8a32ce7d55a60d64adfea4fda243a490d8c..f34b1d484276a549add5b9a03d863cf054a85d07 100644 (file)
@@ -1,5 +1,5 @@
 /* Generic BFD support for file formats.
-   Copyright (C) 1990-2015 Free Software Foundation, Inc.
+   Copyright (C) 1990-2016 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -203,6 +203,9 @@ bfd_boolean
 bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
 {
   extern const bfd_target binary_vec;
+#if BFD_SUPPORTS_PLUGINS
+  extern const bfd_target plugin_vec;
+#endif
   const bfd_target * const *target;
   const bfd_target **matching_vector = NULL;
   const bfd_target *save_targ, *right_targ, *ar_right_targ, *match_targ;
@@ -305,6 +308,16 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
       temp = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd));
       if (temp)
        {
+         int match_priority = temp->match_priority;
+#if BFD_SUPPORTS_PLUGINS
+         /* If this object can be handled by a plugin, give that the
+            lowest priority; objects both handled by a plugin and
+            with an underlying object format will be claimed
+            separately by the plugin.  */
+         if (*target == &plugin_vec)
+           match_priority = (*target)->match_priority;
+#endif
+
          match_targ = temp;
          if (preserve.marker != NULL)
            bfd_preserve_finish (abfd, &preserve);
@@ -326,9 +339,9 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
                matching_vector[match_count] = temp;
              match_count++;
 
-             if (temp->match_priority < best_match)
+             if (match_priority < best_match)
                {
-                 best_match = temp->match_priority;
+                 best_match = match_priority;
                  best_count = 0;
                }
              best_count++;
This page took 0.030199 seconds and 4 git commands to generate.