[PATCH] D65556: Phabricator D49466

Dan McGregor via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 31 21:30:22 PDT 2019


dankm created this revision.
Herald added subscribers: llvm-commits, cfe-commits, hiraditya, emaste.
Herald added projects: clang, LLVM.

path prefix mapping: enforce path matching

Force the prefix string to match a complete prefix in the
path to remap, and strip any trailing path separators from
the resulting path.

Allows -ffile-prefix-map=/a=b /a/test.c to be remapped to b/test.c
and -ffile-prefix-map==/fake_prefix /a/test.c to become
/fake_prefix/a/test.c.

Likewise, -ffile-prefix-map=/a= /a/test.c becomes test.c instead of
/test.c. For the latter you'd use -ffile-prefix-map=/a=/.

Merge remote-tracking branch 'llvm/master' into D49466 <https://reviews.llvm.org/D49466>

Do not remap MainFileName twice.

Merge remote-tracking branch 'llvm/master' into D49466 <https://reviews.llvm.org/D49466>

Path: enhance prefix mapping

Return true when a path is remapped, and allow replacing the
original path entirely.

Break on first match.

Merge remote-tracking branch 'llvm/master' into D49466 <https://reviews.llvm.org/D49466>

Style fix

Unit test updates

Clean up path handling some more

Rewrite path prefix replacement

Add a bunch of tests for odd corner cases.

Merge remote-tracking branch 'llvm/master' into D49466 <https://reviews.llvm.org/D49466>

Address path feedback

Use new flag in clang

Get contract in order


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65556

Files:
  clang/include/clang/Basic/DiagnosticDriverKinds.td
  clang/include/clang/Driver/Options.td
  clang/include/clang/Lex/PreprocessorOptions.h
  clang/lib/CodeGen/CGDebugInfo.cpp
  clang/lib/CodeGen/CGDebugInfo.h
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/lib/Driver/ToolChains/FreeBSD.cpp
  clang/lib/Driver/ToolChains/Gnu.cpp
  clang/lib/Frontend/CompilerInvocation.cpp
  clang/lib/Lex/PPMacroExpansion.cpp
  clang/test/CodeGen/debug-prefix-map.c
  clang/test/Driver/debug-prefix-map.S
  clang/test/Driver/debug-prefix-map.c
  clang/test/Preprocessor/file_test.c
  clang/test/Preprocessor/file_test.h
  llvm/include/llvm/Support/Path.h
  llvm/lib/Support/Path.cpp
  llvm/unittests/Support/Path.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65556.212722.patch
Type: text/x-patch
Size: 22097 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190801/2861b240/attachment-0001.bin>


More information about the cfe-commits mailing list