<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56715>56715</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Modules] Can't call imported template with local type
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JohelEGP
      </td>
    </tr>
</table>

<pre>
    Commands:
```bash
CXX=clang++
echo "export module waarudo.m1;
export constexpr int f(auto) { return 0; }
" > waarudo.m1.cpp
echo "export module waarudo.m2;
import waarudo.m1;
constexpr int zero() {
  struct x { };
  return f(x{});
}
static_assert(zero() == 0);
" > waarudo.m2.cpp
$CXX   -stdlib=libc++ -pedantic -Wall -Wextra -Wconversion -Werror=missing-field-initializers -O3 -DNDEBUG -fmodules -fbuiltin-module-map -std=c++2b -MD -MT waarudo.m1.cpp.o -MF waarudo.m1.cpp.o.d -o waarudo.m1.cpp.o -c waarudo.m1.cpp
$CXX   -stdlib=libc++ -pedantic -Wall -Wextra -Wconversion -Werror=missing-field-initializers -O3 -DNDEBUG -fmodules -fbuiltin-module-map -std=c++2b -MD -MT waarudo.m1.pcm -MF waarudo.m1.pcm.d -o waarudo.m1.pcm -c waarudo.m1.cpp -Xclang -emit-module-interface
$CXX   -stdlib=libc++ -pedantic -Wall -Wextra -Wconversion -Werror=missing-field-initializers -O3 -DNDEBUG -fmodules -fbuiltin-module-map -fprebuilt-module-path=. -std=c++2b -MD -MT waarudo.m2.cpp.o -MF waarudo.m2.cpp.o.d -o waarudo.m2.cpp.o -c waarudo.m2.cpp
```

Output:
```
waarudo.m2.cpp:5:10: error: no matching function for call to 'f'
  return f(x{});
         ^
waarudo.m2.cpp:7:15: error: static assertion expression is not an integral constant expression
static_assert(zero() == 0);
              ^~~~~~~~~~~
2 errors generated.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVd1vmzAQ_2vMywlETAjJAw9p01Sa1HUPm9a3yWATPBkb2abN9tfvDEmbptlU7WlD5sPn893vPvyjMvxHeW26jmnuSLYm6Yaka7JIp1Ex106i64cHkm1qxfSO0KswRrGoWwOEUrHvjfXQGT4oAU-M2YGbpJuR7Kg4KdRGO4_fFqT20BC6ZIM3hK6AFFdghR-shhR34XxzAEMpkOzmxGhS9_273NNn97IbFS4Ae43op7CIZnkANGkAOG-H2sN-BBmAZc9LB8ghkn3YgYt09bz-HITzzMv6G3NOWI-6p34ytLfBoE_3ncdMX2ImdI7FAIDYea5khZvxWU9VgbgXnGn0BfFXphQ-xd5bhm8M9FFYJ40OQmuNxZ2ddE7qXdxIoXgstfSSKYnoHMT3GcSbj5ubqy-3EDdTblHcVINUXup4ksQd60cooT0mELSC-G6D9-ezoiUGhds3woRDbC6o1hdr_r_G39fdefQoehP7qHYeOcQP49GDWHTSHz1jwwrbsFr8w4lpeitG-VHaM9-i_eQdOaOXeoZe7Bl6oWdOz8yR0A7T8Xk_-H7wb0lvmp6ZydY53jOkpjUccrQGbaBjvm4xUdAMuvYhh42xUIcM-0BNBTJD8T6ygONF8pvfYCgChvwVholZYGKW4D9wmXBjOaVDiB6YDtwmdpapiYCxD07U_oqh4NUVEBd_HOMmOsF2sBNaWOYFT85yH4lytsiXxXK1mhURLzO-ylYs8tIrUZL86m5qNpJv4JppTK2fcj3xu-DgRdcrtAxP0regDK6C_9GLaLCqbL3vx78c3eLYocZQJbXpcKLU4_EV99Z8FzUmYYuHYEBvdJsvilketSVb0YzPeLZIU17NOV-lDWfzvKgWDZstmipSrBLKBajI4Vo8wWgCvxFyJEuaUpoWNKc0X2Z5QkVVLemymYeg2TIj81R0TKok4EiM3UW2HCFVw87hopLOu5dFLJbcaTFmJtjHf2lrbPnBtELd3H6KRt_liP0Xw-1xDQ">