r215290 - Fix six tests are failing on Windows after r215241-r215243.

Rafael EspĂ­ndola rafael.espindola at gmail.com
Mon Aug 11 10:24:24 PDT 2014


On 11 August 2014 13:14, Yaron Keren <yaron.keren at gmail.com> wrote:
> Lexer/cross-windows-on-linux-default.cpp is marked
>
>  REQUIRES: disabled
>
> doesn't it means the test is disabled?

It is not,  Lexer/cross-windows-on-linux.cpp is.

> I had not debugged the six tests to see what exactly broke, only restored
> pre-patch behaviour to make the tests pass.
>
> On Windows both / and \ are accepted.  From past experience ( and
> http://reviews.llvm.org/D3686 )
> such problems are usually caused by StringMap caches in which /  and \ are
> considered different when searching. Prime suspects would be:
>
>  HeaderSearch::LookupFileCache
>  HeaderSearch::FrameworkMap
>  FileManager::SeenFileEntries
>
> but these would also need fixing:
>
>  HeaderSearch::IncludeAliases
>  FileManager::SeenDirEntries
>
> and probably other StringMaps.
>
> To solve these we could create a PathStringMap derived from StringMap in
> which the search is  / \ tolerant and use it instead of the StringMap when
> paths are stored.

I see. The ifdef you added seems a pretty reasonable fix while the
general issue is worked on then.

Thanks,
Rafael



More information about the cfe-commits mailing list