<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 - UNREACHABLE executed at llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5726!"
   href="https://bugs.llvm.org/show_bug.cgi?id=45579">45579</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>UNREACHABLE executed at llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5726!
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>10.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>FreeBSD
          </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>Common Code Generator Code
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>pkubaj@anongoth.pl
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>FreeBSD head, LLVM 10.0.0, powerpc, powerpcspe and powerpc64 architectures

Reduced test case:
double a(double);
template <typename> class b;
template <typename c, typename i> void operator==(i &, c);
template <> class b<double> {
public:
  b(double = 0.0);
};
b<double> d;
double e;
template <class f, class g> void h(f m, g) {
  b<double> j;
  m == d;
  double k = a(0);
  j = e / 2 + (m - .5) * k - m;
}
double l() { h(.5, 0); }

Compile with:
/usr/bin/c++ -cc1 -triple powerpc-unknown-freebsd13.0 -emit-obj -ffast-math -O1
-fgnuc-version=4.2.1 Lgamma-106832.cpp

Result:
Unknown code
UNREACHABLE executed at
/usr/src/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5726!
Stack dump:
0.      Program arguments: /usr/bin/c++ -cc1 -triple
powerpc-unknown-freebsd13.0 -emit-obj -ffast-math -O1 -fgnuc-version=4.2.1
Lgamma-106832.cpp
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'Lgamma-106832.cpp'.
4.      Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on
function '@_Z1hIdiEvT_T0_'
#0 0x0000000013bada64 PrintStackTrace
/usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:564:13
#1 0x0000000013bab12c RunSignalHandlers
/usr/src/contrib/llvm-project/llvm/lib/Support/Signals.cpp:67:5
#2 0x0000000013bae86c SignalHandler
/usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:0:3
#3 0x0000000815734748 handle_signal /usr/src/lib/libthr/thread/thr_sig.c:303:3
Abort trap (core dumped)</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>