[all-commits] [llvm/llvm-project] 1b6c3c: [lld][test] Fix use of escape character in an lld ...
Jordan Rupprecht via All-commits
all-commits at lists.llvm.org
Thu Oct 17 08:34:23 PDT 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 1b6c3ca1267218b31c230815e1cc0b56aa89ddd2
https://github.com/llvm/llvm-project/commit/1b6c3ca1267218b31c230815e1cc0b56aa89ddd2
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2019-10-17 (Thu, 17 Oct 2019)
Changed paths:
M lld/test/ELF/linkerscript/filename-spec.s
Log Message:
-----------
[lld][test] Fix use of escape character in an lld test on Windows
Summary:
Glob support was improved to accept `\` as an escape character in r375051, but reverted as r375052 due to a failure in this test on Windows.
The reason this failure seems Windows specific is because the path separator `\` is currently being relied on to be interpreted literally instead of as an escape character. Per documentation on linker input section wildcard patterns, this seems to be a bug in lld accepting `\` as a literal instead of an escape character.
For example:
```
SECTIONS{ .foo :{ /path/to/foo.o(.foo) }} # OK: standard UNIX path
SECTIONS{ .foo :{ C:/path/to/foo.o(.foo) }} # OK: windows accepts slashes in either direction
SECTIONS{ .foo :{ C:\\path\\to\\foo.o(.foo) }} # OK: escape character used to match a literal \
SECTIONS{ .foo :{ C:\path\to\foo.o(.foo) }} # BAD: this actually matches the path C:pathtofoo.o(.foo)
```
This avoids the problem in the test by using `%/T` in place of `%T` to normalize the path separator to `/`, which windows should also accept.
This patch just fixes the test, and glob support will be be relanded separately.
For a sample buildbot error, see: http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/11578/steps/stage%201%20check/logs/stdio
Reviewers: evgeny777, ruiu, MaskRay, espindola
Reviewed By: ruiu, MaskRay
Subscribers: emaste, arichardson, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69074
llvm-svn: 375126
More information about the All-commits
mailing list