<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 - Assertion failure / segfault when internalizing twice-promoted global value"
   href="https://bugs.llvm.org/show_bug.cgi?id=44456">44456</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Assertion failure / segfault when internalizing twice-promoted global value
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>9.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </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>new bugs
          </td>
        </tr>

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

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

        <tr>
          <th>CC</th>
          <td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I get "llvm::thinLTOInternalizeModule ... Assertion `GS !=
DefinedGlobals.end()' failed" consistently when compiling a particular Rust
crate.

This happens when handling the following symbol name:

switch.table._ZN77_$LT$omaha_client..protocol..request..Event$u20$as$u20$core..clone..Clone$GT$5clone17h829b64c9ab982ff5E.llvm.10390335839252477638.llvm.11308644296266801080

Note that this has _two_ .llvm extensions appended.

getOriginalNameBeforePromote chops off both extensions instead of only the last
one.

Changing getOriginalNameBeforePromote to only chop off the last one (with
rsplit instead of split) fixes the issue.

I do not yet have a simple reproducer. I'm hoping this is clearly a bug without
one, but if not I can get one ready.

See also <a href="https://github.com/rust-lang/rust/issues/67855">https://github.com/rust-lang/rust/issues/67855</a></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>