<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/95345>95345</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[BOLT] BinaryEmitter.cpp calls emitLabel twice on the same symbol
</td>
</tr>
<tr>
<th>Labels</th>
<td>
BOLT
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
MaskRay
</td>
</tr>
</table>
<pre>
`MCObjectStreamer::emitLabel` is not expected to be called more than once on the same symbol.
However, bolt/lib/Core/BinaryEmitter.cpp:emitFunctionBody may do so for two/three runtime tests
* runtime/X86/exceptions-pic.test
* runtime/X86/pie-exceptions-failed-split.test
Reproduce:
`git revert -n 90a23d3a5a843086124c4b9315ee6a7617965623` then run `ninja check-bolt`.
```
first: BF = (llvm::bolt::BinaryFunction *) 0x5594035c9aa8; FF= (llvm::bolt::FunctionFragment *) 0x7f0d4801c340
BinaryContext.cpp:2405 (in calculateEmittedSize)
BinaryEmitter.cpp:1217 (in emitFunctionBody)
BinaryEmitter.cpp:450 (in emitFunctionBody)
MCELFStreamer.cpp:103 (in emitLabel)
second: BF = (llvm::bolt::BinaryFunction *) 0x5594035c9aa8; FF= (llvm::bolt::FunctionFragment *) 0x7f0d4801c340
BinaryEmitter.cpp:266 (in emitFunctions)
BinaryEmitter.cpp:386 (in emitFunction)
BinaryEmitter.cpp:450 (in emitFunctionBody)
MCELFStreamer.cpp:103 (in emitLabel)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMlE9v4zYQxT8NdRnYoIb6e9DBdlboYYMFdnvolaImFnclUSBHSdxPX0iykXTrNmhPBQzahvSbGT4-Ph2CPY9ElUiPIn2I9Myd89WjDj--6kvUuPZSiUw-nr4038nwN_akB_JCHYQ60GD5s26oF5kEG2B0DPQ6kWFqgR00BEb3PbUwOE_AnR7BjYbAjcAdQdADQbgMjev3Qj4IefjFvdAzeYEnaFzPAuveNgLrk_MksD7aUfvLp8Eyk9-baboOUc-jYevGo2svMOgLtA6CgyfngV-cwJo7TwR-HtkOBEyBw9bwuuLh9lBg_VuRCazp1dC0FA27yZr9wvz9y5Ol3TvgSdue2l2YesvvyXX9SpN37WxoEfH9EJk8Wwa_CMCwG6GUGlWrdKqLRMkiizExSVOqOCXKdJ7FeZmlGapFfe5oXKYCkcnRjt81mI7Mj92qYib3PzW6fta_T9YHFuoAxxqEegCBRd8_D9sRr_z6a9P-pjQIPAgsQb6maZlIlZpS60KoI9T1PxS54bXX54FGfiuTP8k2KWRsVHKdC7aOJzcyvfL1tDGR6VLcjou1zNxrps0P7Tf7OwksrzDc80qMcX6lf7bNB2SSyg_Bx9Onz_Xthtw6SvWO2y7LDdjWQMaN7f9R_7tCYJbdESJ8IJ8q7lFv0H-V_N9r_mfvR22l2lKVOqIqzuMCkyJL4qirlMEyjnOZYUp506gib4wxadu2sUmbtohshRITmcVKqjjHeK8bWZZpWRQmVgqVFImkQdt-v5zD3vlzZEOYqSpTlaRRv0wV1tRFPH75_KtAXPLXV8vru2Y-B5HI3gYObwXYcr8m9QqkD3-Vbc3b8LZv4Bd7N2-j2fdVxzyFxRhYC6zPlru52Rs3LLG7mGf72k3eLdkvsF53EATW2yaeK_wjAAD__1FM6pw">