[all-commits] [llvm/llvm-project] 0a8264: [SpecialCaseList] Add backward compatible dot-slas...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Wed Jun 10 16:41:27 PDT 2026


  Branch: refs/heads/users/vitalybuka/spr/wip-dotslash-backward-compartible
  Home:   https://github.com/llvm/llvm-project
  Commit: 0a8264630913e36fa9a319001e267bb38026f71b
      https://github.com/llvm/llvm-project/commit/0a8264630913e36fa9a319001e267bb38026f71b
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-06-10 (Wed, 10 Jun 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/SanitizerSpecialCaseList.rst
    M llvm/lib/Support/SpecialCaseList.cpp
    M llvm/unittests/Support/SpecialCaseListTest.cpp

  Log Message:
  -----------
  [SpecialCaseList] Add backward compatible dot-slash handling

This PR is preparation for:
* https://github.com/llvm/llvm-project/pull/167283

The new behavior is controlled by the `Version` field in the special
case list file.

- Version 1 and 2: Path is matched as-is, regardless of presence of "./".
- Version 3, 5 and higher: Paths with leading dot-slash are canonicalized
  to paths without dot-slash before matching. This means that a rule
  like `src=./foo` will never match, and `src=foo` will match both
  `foo` and `./foo`. (Version 3 never became default but has this behavior).
- Version 4: Transitionary version. Paths are matched both ways
  (canonicalized and non-canonicalized) to maintain backward compatibility.
  If a match only works with the old behavior (non-canonicalized), a warning
  is emitted.

This change allows for a gradual transition to the new behavior, while
maintaining backward compatibility with existing special case list
files.

Reviewers: fmayer (Florian Mayer)

Pull Request: https://github.com/llvm/llvm-project/pull/162511



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list