Fix PR30079: abort on mingw
authorMichael Matz <matz@suse.de>
Thu, 9 Feb 2023 14:29:00 +0000 (15:29 +0100)
committerMichael Matz <matz@suse.de>
Mon, 13 Feb 2023 12:52:02 +0000 (13:52 +0100)
the early-out in wild_sort is not enough, it might still be
that filenames are equal _and_ the wildcard list doesn't specify
a sort order either.  Don't call compare_section then.

Tested on all targets.

ld/ldlang.c

index 84a2914fc2641ad9f13ab6c6dd39b4f2fe0f8291..b5e0d026ae4b98ffa87d80d24bb6c38531834861 100644 (file)
@@ -649,7 +649,8 @@ wild_sort (lang_wild_statement_type *wild,
         looking at the sections for this file.  */
 
       /* Find the correct node to append this section.  */
-      if (compare_section (sec->spec.sorted, section, (*tree)->section) < 0)
+      if (sec && sec->spec.sorted != none && sec->spec.sorted != by_none
+         && compare_section (sec->spec.sorted, section, (*tree)->section) < 0)
        tree = &((*tree)->left);
       else
        tree = &((*tree)->right);