<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 - clang crashes on c++17 class template deduction argument types of function pointers"
   href="https://bugs.llvm.org/show_bug.cgi?id=41455">41455</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang crashes on c++17 class template deduction argument types of function pointers
          </td>
        </tr>

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

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

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </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>C++'17
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>baruchs@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>blitzrakete@gmail.com, erik.pilkington@gmail.com, llvm-bugs@lists.llvm.org, richard-llvm@metafoo.co.uk
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Any attempt to deduce the arguments of a function pointer with C++17 class
template deduction results in clang crashing. 

The same code works on clang 6.0.0, but no longer works on clang 7.0.0, 8.0.0,
and current trunk.

The following complier explorer link reproduces the crash
<a href="https://godbolt.org/z/SKT-Fh">https://godbolt.org/z/SKT-Fh</a>

----- .cpp file -------

template<typename... arg_types>
struct wrapper
{
    wrapper(void (*f)(arg_types...));
};

void f(int a);

void g()
{
    auto w = wrapper(f);
}

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