diff --git a/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp b/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp index eb26c637a2ca3..14078f5aaf9a4 100644 --- a/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp +++ b/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp @@ -200,8 +200,8 @@ void GsymCreator::prepareMergedFunctions(OutputAggregator &Out) { if (Funcs.size() < 2) return; - // Sort the function infos by address range first - llvm::sort(Funcs); + // Sort the function infos by address range first, preserving input order + llvm::stable_sort(Funcs); std::vector TopLevelFuncs; // Add the first function info to the top level functions diff --git a/llvm/test/tools/llvm-gsymutil/ARM_AArch64/macho-gsym-merged-callsites-dsym.yaml b/llvm/test/tools/llvm-gsymutil/ARM_AArch64/macho-gsym-merged-callsites-dsym.yaml index 001145c01398c..4cecc79c72b4b 100644 --- a/llvm/test/tools/llvm-gsymutil/ARM_AArch64/macho-gsym-merged-callsites-dsym.yaml +++ b/llvm/test/tools/llvm-gsymutil/ARM_AArch64/macho-gsym-merged-callsites-dsym.yaml @@ -1,7 +1,3 @@ -# FIXME: Currently disabled as it fails on some Linux hosts -# UNSUPPORTED: true - - ## Test that reconstructs a dSYM file from YAML and generates a gsym from it. The gsym has callsite info and merged functions. # RUN: split-file %s %t