<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Filemanager possible issue with case insensitivity in Windows‏"
   href="http://llvm.org/bugs/show_bug.cgi?id=17993">17993</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Filemanager possible issue with case insensitivity in Windows‏
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>yaron.keren@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In Windows, files are usually case insensitive. The program may not be able to
change this, see  
<a href="http://www.nicklowe.org/2012/02/understanding-case-sensitivity-in-windows-obcaseinsensitive-file_case_sensitive_search/">http://www.nicklowe.org/2012/02/understanding-case-sensitivity-in-windows-obcaseinsensitive-file_case_sensitive_search/</a>

Meanwhile, SeenFileEntries keys in FileManager are case-sensitive, so we may
end up with duplicate mappings in SeenFileEntries for the same file, for
example

Hello.h
HELLO.H
hello.H

will all map to the same FileEntry.

Furthermore, the file name in FE will be the searched-for filename rather than
the real filename. For example, let's say you have hello.h on disk but you
searched for HELLO.H. Since stat succeeds with HELLO.H this will be the
filename linked from the FE and used in all clang's diagnostics. 

I'm not sure if this should be called a bug but it may not be what the user
expects.

Fixing this would require extra work for every file open on Windows, using
FindFirstFile looking for file instead of stat checking the file exists.

Reid Kleckner comment on cfe-dev:
I think the correct design is to have multiple strings point to the same
FileEntry, which owns the canonical name, rather than pointing to the StringMap
key used for the first path encountered.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>