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

    <tr>
        <th>Summary</th>
        <td>
            LTO fails combining modules with and without opaque pointers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    It looks like doing LTO doesn't work when some modules use opaque pointers and some don't. I *think* up to now doing LTO with modules generated by older versions of LLVM worked.

a.ll:
```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
define i8* @foo() {
    ret i8* null
}
```

b.ll:
```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
define ptr @bar2() {
    ret ptr null
}
```

```
bin/llvm-as a.ll
bin/llvm-as b.ll
bin/llvm-lto2 run a.bc b.bc -o res.bc -r a.bc,foo,plx -r b.bc,bar2,plx                      <<<
llvm-lto2: b.bc: Opaque pointers are only supported in -opaque-pointers mode (Producer: 'LLVM15.0.0git' Reader: 'LLVM 15.0.0git')
```


At the moment, this is causing plenty of `Bitcode` tests to fail from `llvm-test-suite`, when building the test suite with LTO.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVEtvnDAQ_jVwGYF4LAs5cEh2FSlSqlRt1bvBw-Kusaltut1_37HZTZMorXosssx43mPPN53m5_bBgdT6aEGKIwLXQh3g8csTUWhVVNQOTtoc4TSiAqsnhEnzRaKFxSLomX1fEGaycmgsMMVXJa6DbQoPEBW3bhTqSH9YZnAalD69CHQSbnx2ekCFhjnk0J1BS44GfpBjoZUFPcDj49cPIR_kaZTto-x23VkqZVReDtE2u6xwdMwc0AFnjkl21ouDqNxTVgUmE9lgMhd1RkRZhM0f89dHT203YUvElRgab5QXTaIaT2yvNiT7TGwKsMbnOAiFIBp_AdEmG7SOvPgGovpuVQH6DOW46qiFilkrqffvlrTu3f9f9OyML7ljpvhTzV7lXyt-w-wENdm9lD-mhFHvpVcnr_nde3zpdAFmUWTV9aRCW6IpHxsoE9hRsQtvtZvlT8_rVt5aTGC--0Xl7rJC0OdwdEurC_o_vcWNISwpeQa7zLM2vv-FooyCWvKsRihBesTmoyG49Gi8K4KZR0VepVmaHYSjM3xCxl9J4aWYnuFvdxz2Wwdu9FifUJHNjk7CAq2eLdYjd5YkOHtMkv2dcD2lRhQ4tM56kA9MSBiMnrxCuAQvSuwinFf0PsNM6RYhuffo43kVCCrrWKD5kMa8LflNecNiJ5zE1s8M75xy0RM9qbe9jo9g5IeQJ3zXvxlQ8WJkOzo3Ww-c4p4W3cm4dCn5uvTGtUVmo79hT8XfC2sXtERUVVnX8dg2WcXyIes5q7tNPmBXb7fNTVdhNpQDHzCWrENp26i6i6p9LNoiK4qsyvOsIZxlKe9x2OR9hh2rNkWOBBGcqKTUB061OcSmDTl0y8GSUAq61N9CZq04KMSrf7ZQsaYdRjaqOCTbhkx_ATtsuSo">