Author: Dan McGregor Date: 2022-08-30T08:56:25+02:00 New Revision: 761d71a489bf48144e5f37745e27e2e00e35dbc4
URL: https://github.com/llvm/llvm-project/commit/761d71a489bf48144e5f37745e27e2e00e35dbc4 DIFF: https://github.com/llvm/llvm-project/commit/761d71a489bf48144e5f37745e27e2e00e35dbc4.diff LOG: [MCContext] Reverse order of DebugPrefixMap sort for generated assembly debug info Match Clang's sorting, so that longer (more specific) prefix paths will match before less specific paths. Reviewed By: MaskRay, raj.khem, #debug-info Differential Revision: https://reviews.llvm.org/D132390 (cherry picked from commit 3922ec46b84a877a9ac6ce4cfa765c4c847d097d) Added: Modified: llvm/include/llvm/MC/MCContext.h llvm/test/MC/ELF/debug-prefix-map.s Removed: ################################################################################ diff --git a/llvm/include/llvm/MC/MCContext.h b/llvm/include/llvm/MC/MCContext.h index 595207b277a78..c20ce79ee4d08 100644 --- a/llvm/include/llvm/MC/MCContext.h +++ b/llvm/include/llvm/MC/MCContext.h @@ -190,7 +190,8 @@ class MCContext { SmallString<128> CompilationDir; /// Prefix replacement map for source file information. - std::map<const std::string, const std::string> DebugPrefixMap; + std::map<std::string, const std::string, std::greater<std::string>> + DebugPrefixMap; /// The main file name if passed in explicitly. std::string MainFileName; diff --git a/llvm/test/MC/ELF/debug-prefix-map.s b/llvm/test/MC/ELF/debug-prefix-map.s index 4e4041d909ee5..28a0bb03a45c7 100644 --- a/llvm/test/MC/ELF/debug-prefix-map.s +++ b/llvm/test/MC/ELF/debug-prefix-map.s @@ -1,5 +1,5 @@ -# RUN: rm -rf %t.foo && mkdir %t.foo && cd %t.foo -# RUN: cp %s %t.foo/src.s +# RUN: rm -rf %t.foo && mkdir -p %t.foo/bar && cd %t.foo +# RUN: cp %s %t.foo/src.s && cp %s %t.foo/bar/src.s # RUN: llvm-mc -triple=x86_64 -g -dwarf-version=4 src.s -filetype=obj -o nomap.4.o # RUN: llvm-dwarfdump -v -debug-info -debug-line nomap.4.o | FileCheck --check-prefix=NO_MAP_V4 %s @@ -11,9 +11,10 @@ # RUN: llvm-mc -triple=x86_64 -g -dwarf-version=5 src.s -filetype=obj -o map.5.o -fdebug-prefix-map=%t.foo=src_root # RUN: llvm-dwarfdump -v -debug-info -debug-line map.5.o | FileCheck --check-prefix=MAP_V5 %s -# RUN: llvm-mc -triple=x86_64 -g -dwarf-version=4 %t.foo/src.s -filetype=obj -o mapabs.4.o -fdebug-prefix-map=%t.foo=/src_root +# RUN: cd %t.foo/bar +# RUN: llvm-mc -triple=x86_64 -g -dwarf-version=4 %t.foo%{fs-sep}bar%{fs-sep}src.s -filetype=obj -o mapabs.4.o -fdebug-prefix-map=%t.foo=/broken_root -fdebug-prefix-map=%t.foo%{fs-sep}bar=/src_root # RUN: llvm-dwarfdump -v -debug-info -debug-line mapabs.4.o | FileCheck --check-prefix=MAPABS_V4 %s -# RUN: llvm-mc -triple=x86_64 -g -dwarf-version=5 %t.foo/src.s -filetype=obj -o mapabs.5.o -fdebug-prefix-map=%t.foo=/src_root +# RUN: llvm-mc -triple=x86_64 -g -dwarf-version=5 %t.foo%{fs-sep}bar%{fs-sep}src.s -filetype=obj -o mapabs.5.o -fdebug-prefix-map=%t.foo%{fs-sep}bar=/src_root -fdebug-prefix-map=%t.foo=/broken_root # RUN: llvm-dwarfdump -v -debug-info -debug-line mapabs.5.o | FileCheck --check-prefix=MAPABS_V5 %s f: _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits