<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzVVU2P2zYQ_TXyZWDDotZr-6BDNrtGCxToIQlyDChyJLFLkQY_1nF-fWYou-sF2qRAe-liTVn8mHnz3uO48_rc_oIBK7GNIKE3FiFH4wYwLqGl0RqHIONUNe-q9WO1vo7368v__Co2oGTijSs1T1EAmKRxldhVYg_V9mGehxKNJwVtaehBy1VzWa22j3-doIyfR3RwQlB-OjJUk6D3AWSY7u8q8Z6XBiQU4IxC0EYOQKCuu5OZ8Odl-JwqcRgI96Fj9AdlJfGxXCYZKHjVPJZ0SyImf11m9-z8yc2Fw7LPEZdW0yZrNZ2J5xi8T1T9E0WKQXG8MXgCcn3tsqED4lDi0VNjZ6T7Eo3-Mie6xJgRzgQ37wR9tvQBDMEH_pJdQOUHZ76hJt1iClkl4x1MDidPhDBB2mg4-wwTSseHRpKgag7_RBkof9Xm6UJV8_7WHE8Urb7gAucTE11QSJeMTAVS8rQ34tTZM4xsupu4ACXlm5k_c9VzlaStw8DBVj_wyDw-5ASmZ0OQIvDbx9_f2MNijG89QpU8_88NQsFt8hQ5kaozXKtXlpPd2ORHuv0XFvqpmPNYOHsDjBXAwJd1kk5DL-nKajiZNAJ-NXyLNUIN5E9WdPkCZKeI1APci6fWQzDZrX_viw-jP3FjSyNCqd_lqaOEJsIx-E6yK7Xpe6OyTZzmVxgy-2SWl5wcR4zlODEH0eeg0HoFHVIPKr1ISWvjbPTrtqMMkZJwRYmbV8AeQ2Ts3LtIZ1q6uJtPd1I9M8nzfvKlcRR8KuUxUusJyuBZvRvProDtPslzhxe0ymdbJMRQ_M71TjIwwcbddHV-I9PAxOQShkjGY_sMrKjYz4GPgUq6UqdyCEit_eMniGPJQklRxnPBfCoz1kxUXYkTC1BaZxgdzVZPotqtq33DqSVT_weqNOtMwp8pMFFIN2yrX4-WulAGOI1GjZybocy0EStE0Wqh20bvm71cyJxGH1qyq1_kYNsxpWPkay0OfG8pUe5WZDO-Uvbl-lhekNCriZGEpy8bsd3Vi7Hd7Gu96Rrs13eix726x77WNd7f7VCqXuwXVnZoY1ttHqhp8o2j1rl5XPz73KYVa1HXot6Kdb1ptiuxa3a1EHvc1rtO6111t0b6lbUrjrPyYViEtoTs8hBp0ZqY4usi9V8zOMQClRAmkyy2n5n8S48s1Edu4a9kF6LjbNcb71AdWCYXBXVbIH8Hj0Sflw>52781</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            With LTO, it's not which TU errors from inline asm come from
        </td>
    </tr>

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

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

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

<pre>
    Here's a file using intel inline asm:

```
% cat asm.c
int main() {
  asm("int3");
}
```

When we compile it for arm64, we get a nice diag at compile time:

```
% out/gn/bin/clang --target=arm64-linux-unknown asm.c -fuse-ld=lld --sysroot ~/src/chrome/src/build/linux/debian_sid_arm64-sysroot
asm.c:2:7: error: unrecognized instruction mnemonic, did you mean: hint?
  asm("int3");
      ^
<inline asm>:1:2: note: instantiated into assembly here
        int3
        ^
1 error generated.
```


But if we use LTO, we get a less nice diag at link time:

```
% out/gn/bin/clang --target=arm64-linux-unknown asm.c -fuse-ld=lld --sysroot ~/src/chrome/src/build/linux/debian_sid_arm64-sysroot -flto=thin
ld.lld: error: <inline asm>:1:2: unrecognized instruction mnemonic, did you mean: hint?
        int3
        ^

clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

Showing the line number is probably difficult (I guess clang stashes the asm sourceloc before it calls into the asm parser and then refers to it from an error callback, and that information is long gone at link time. But maybe clang could insert a line marker in inline asm in lto mode or something?). But printing the current TU should be easy and would limit things at least a bit – in a project with many TUs it'd at least be clear which TU the error is for.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVU1v4zYQ_TXyZWDDouxIPuiw2cRogQI9dIs9LihxJLGhSIMf8bq_vjOUvXGAdreHXhrElMWPN2_ePI47py7tT-ixEHUACYM2CCloO4K2EQ2NRlsEGeai-lBsn4rtbXzYXv-XV7GHXkbeuOmXKQKAWWpbiKYQByjqx2UeMhpPCtpS0YOWi-q6WtRPfx8gj58ntHBG6N18Yqo6wuA8SD8_7ArxkZdGJBZgdY-gtByBSN12Rz3jj9NwKRbiOBLvY8fsj72RpMd6HaUn8KJ6yuHWJEz6uk72xbqzXRKH9ZACro2iTcYoOhMuwTsXKftnQgq-Z7zJOyJye-2SpgPimPHoqbDT0n4JWn1ZAl0xFoaLwNUHQZ-aPoDeO89fkvXYu9HqP1FR3UL0qY_aWZgtzo4EYYGUVnBxCWaUlg9NVIKiOv6bykD-K_bPV6mqj_fmeCa08soLrIssdGYhbdQyZkrR0d6Ac2cuMLHp7nABcsh3M99ilUuWVFuLnsE23_HIMj6mCHpgQ1BF4JdPv76zh8EQ3nuEMnn5nxuEwE10hBypqgtdozaGg93Z5Ht1-y8s9MNiLmPW7B0xrgB6vqyztAoGSVdWwVnHCfCr5lusEEogf3JF169AdgpIPcC-Omo9RJPd-s---G1yZ25scULI-ds0dxRQBzh510l2pdLDoPtkIof5GcbEPlnKS04OE4Z8nJSD4JLv0bgeOqQelHtRL40Ji9Fv207SBwrCGUVuXh4H9IG5c--iOtPS1d18upP9C4u87Cdfakvgc06PmRpHVEbH1bvz7AbY7rO8dHhl27tkcgnRZ79zvrP0LLC2d12d38g0MLO4xCGQ8dg-I1dUHBbgk6eUbtL1yXuk1v7pdwhTjkJBUYZL5nzOM0bPlF3GCZkorTONjmaLZ1E02-JQcWjJ0v-BfVzqTIW_EDBJSDesVm9Hc14oPZwn3U8cm6ksspEqJNFmpdpKHaqDXEUdDbafGfB67zNc4Lb0BpAPh6UEd3qQ_TBPrpI37RTjKXBHEEe-8gSZug1t4dtoXm-P9TUJetUhkGfoy17UTbma2qbcymo3YIUod7KqD4dhJw-iGpr-4UHtmpWRHZrQFvtH6rd8Wanr7p9WuhVbUZairMW23Ff1RjRVUwpxwLpsOqWaYrdF-nk1G2awcX5c-TaT6dIYaNHoEMPbIjVePVrEHIjwZYqT8y3dabfKpNvM-C9cromV">