This reduces visual noise ("./foo.h" -> "foo.h") in error messages.
Fix all tests which fail as a result.
This also fixes a class of failures when FILE is used in modules, and
the module specifies 'textual header "foo.h"' but Clang has "./foo.h"
included elsewhere.
Finally this should fix Windows failure from https://reviews.llvm.org/D121658
this is actually breaking the contract of FileEntryRef, is this the point?
I don't see mention of this contract being changed explicitly anywhere, if so can you mention it in the commit message and also update the documentation? (the same applies to DirectoryEntryRef changes as well)
I am not able to take a detailed look at this at the moment, but this doesn't feel like a safe change for all clients. Because people might be relying on this contract without explicitly testing the behaviour for "./" in the filenames. So tests passing (especially when you're just updating them to not have ./) might not be implying it's safe.