<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </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 - subframework-symlink.m test does work on Windows"
   href="https://bugs.llvm.org/show_bug.cgi?id=44221">44221</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>subframework-symlink.m test does work on Windows
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </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>enhancement
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Frontend
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>amccarth@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, neeilans@live.com, richard-llvm@metafoo.co.uk
          </td>
        </tr></table>
      <p>
        <div>
        <pre>This was originally considered part of PR43272, because it's part of the
virtual file system tests, but the issue here is not VFS.  On Windows, the
tests fails before VFS is applied.  Instead, it's caused by failure to
recognize that two paths to the same file (via a symlink) actually refer to the
same file.

Excerpt from `$ ninja check-clang-vfs`:

FAIL: Clang :: VFS/subframework-symlink.m (16 of 20)
******************** TEST 'Clang :: VFS/subframework-symlink.m' FAILED
********************
Script:
--
: 'RUN: at line 6';   rm -rf
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp
: 'RUN: at line 7';   mkdir
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp
: 'RUN: at line 8';   echo 'framework module * {}' >
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/module.modulemap
: 'RUN: at line 9';   mkdir -p
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Headers
: 'RUN: at line 10';   echo '#include <Foo/Foo.h>' >
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Headers/WithSubframework.h
: 'RUN: at line 11';   cp -R
D:\src\llvm\llvm-project\clang\test\VFS/Inputs/Foo.framework
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp
: 'RUN: at line 12';   mkdir -p
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Frameworks
: 'RUN: at line 13';   ln -s
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/Foo.framework
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Frameworks
: 'RUN: at line 14';   d:\src\llvm\build\ninja_dbg\bin\clang.exe -cc1
-internal-isystem d:\src\llvm\build\ninja_dbg\lib\clang\10.0.0\include
-nostdsysteminc -fmodules -fimplicit-module-maps
-fmodules-cache-path=D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/cache1
-F
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp
-fsyntax-only D:\src\llvm\llvm-project\clang\test\VFS\subframework-symlink.m
: 'RUN: at line 18';   sed -e "s@INPUT_DIR@/InvalidPath@g" -e
"s@OUT_DIR@/InvalidPath@g"
D:\src\llvm\llvm-project\clang\test\VFS/Inputs/vfsoverlay.yaml >
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/overlay.yaml
: 'RUN: at line 19';   d:\src\llvm\build\ninja_dbg\bin\clang.exe -cc1
-internal-isystem d:\src\llvm\build\ninja_dbg\lib\clang\10.0.0\include
-nostdsysteminc -fmodules -fimplicit-module-maps
-fmodules-cache-path=D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/cache2
-F
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp
-fsyntax-only D:\src\llvm\llvm-project\clang\test\VFS\subframework-symlink.m
-ivfsoverlay
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/overlay.yaml
--
Exit Code: 1

Command Output (stdout):
--
$ ":" "RUN: at line 6"
$ "rm" "-rf"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp"
$ ":" "RUN: at line 7"
$ "mkdir"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp"
$ ":" "RUN: at line 8"
$ "echo" "framework module * {}"
$ ":" "RUN: at line 9"
$ "mkdir" "-p"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Headers"
$ ":" "RUN: at line 10"
$ "echo" "#include <Foo/Foo.h>"
$ ":" "RUN: at line 11"
$ "cp" "-R" "D:\src\llvm\llvm-project\clang\test\VFS/Inputs/Foo.framework"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp"
$ ":" "RUN: at line 12"
$ "mkdir" "-p"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Frameworks"
$ ":" "RUN: at line 13"
$ "ln" "-s"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/Foo.framework"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/WithSubframework.framework/Frameworks"
$ ":" "RUN: at line 14"
$ "d:\src\llvm\build\ninja_dbg\bin\clang.exe" "-cc1" "-internal-isystem"
"d:\src\llvm\build\ninja_dbg\lib\clang\10.0.0\include" "-nostdsysteminc"
"-fmodules" "-fimplicit-module-maps"
"-fmodules-cache-path=D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/cache1"
"-F"
"D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp"
"-fsyntax-only"
"D:\src\llvm\llvm-project\clang\test\VFS\subframework-symlink.m"
# command stderr:
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp\WithSubframework.framework\Frameworks\Foo.framework\Modules\module.modulemap:1:18:
error: redefinition of module 'Foo'
framework module Foo {
                 ^
D:\src\llvm\build\ninja_dbg\tools\clang\test\VFS\Output\subframework-symlink.m.tmp/Foo.framework\Modules\module.modulemap:1:18:
note: previously defined here
framework module Foo {
                 ^
D:\src\llvm\llvm-project\clang\test\VFS\subframework-symlink.m:21:9: fatal
error: could not build module 'WithSubframework'
#import <WithSubframework/WithSubframework.h>
 ~~~~~~~^
2 errors generated.

error: command failed with exit status: 1

--</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>