<html>
    <head>
      <base href="https://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 --- - clang-cl "PHI node entries do not match predecessors!" "Instruction does not dominate all uses!""
   href="https://llvm.org/bugs/show_bug.cgi?id=25606">25606</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang-cl "PHI node entries do not match predecessors!" "Instruction does not dominate all uses!"
          </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>-New Bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>stephan.bergmann.secondary@googlemail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>With recent Clang trunk:

<span class="quote">> $ cat test.cc
> struct S0 { ~S0(); };
> struct S1 { virtual ~S1(); };
> struct S2: virtual S1 { void f(); };
> struct S3: S2 {};
> void S2::f() {
>     S0 s;
>     (void) dynamic_cast<S3 *>(this);
> }</span >

<span class="quote">> $ clang -cc1 -triple i386-pc-windows-msvc -emit-obj -fexceptions test.cc
> PHI node entries do not match predecessors!
>   %8 = phi %struct.S3* [ %7, %dynamic_cast.notnull ], [ null, %dynamic_cast.null ]
> label %dynamic_cast.notnull
> label %invoke.cont
> Instruction does not dominate all uses!
>   %7 = bitcast i8* %6 to %struct.S3*
>   %8 = phi %struct.S3* [ %7, %dynamic_cast.notnull ], [ null, %dynamic_cast.null ]
> fatal error: error in backend: Broken function found, compilation aborted!</span ></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>