<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/113875>113875</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[llvm] I found a __attribute__((section())) that doesn't work in a specific scenario.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Zhenhang1213
</td>
</tr>
</table>
<pre>
demo:
```
__attribute__((section(".custom"))) static const int data = 123;
const int* get_data()
{
return &data;
}
int main()
{
(void)get_data();
}
```
`clang demo.c -c -o demo.o `
clang version 15.0.4
```
readelf -SW demo.o
There are 11 section headers, starting at offset 0x300:
Section Headers:
[Nr] Name Type Address Off Size ES Flg Lk Inf Al
[ 0] NULL 0000000000000000 000000 000000 00 0 0 0
[ 1] .strtab STRTAB 0000000000000000 00027a 000082 00 0 0 1
[ 2] .text PROGBITS 0000000000000000 000040 000024 00 AX 0 0 4
[ 3] .rela.text RELA 0000000000000000 000200 000048 18 I 10 2 8
[ 4] .custom PROGBITS 0000000000000000 000064 000004 00 A 0 0 4
[ 5] .comment PROGBITS 0000000000000000 000068 00003a 01 MS 0 0 1
[ 6] .note.GNU-stack PROGBITS 0000000000000000 0000a2 000000 00 0 0 1
[ 7] .eh_frame PROGBITS 0000000000000000 0000a8 000050 00 A 0 0 8
[ 8] .rela.eh_frame RELA 0000000000000000 000248 000030 18 I 10 7 8
[ 9] .llvm_addrsig LOOS+0xfff4c03 0000000000000000 000278 000002 00 E 10 0 1
[10] .symtab SYMTAB 0000000000000000 0000f8 000108 18 1 9 8
```
But if I delete function get_data, custom section wouldn't be generated, this is a bug?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUlV1vozgUhn-Nc3OUyDYQ4IKLZDKZrdRpV01H-3ETGXwAb4mpbNOP_fUrDE1JlE5nEYmFOTzv8etjW1irKo2YkWhNos1MdK5uTfZ3jboWumKcBbO8la-ZxENLghWhG0Lf_pd0vP3jfi-cMyrvHO73hCeEJxYLp1rtH_ii6KxrD4RzwtPhBuuEUwUUrbYOlHYghRNAgg0wHpBgPZU7BhG-ggrdvo_16HQMi8d4AIOuMxoIX_qgIyjeTIm94EEo_QGE8OSpVZLw9ExtgoOLVhw7i0boCnrvFgXMC5i3w0MLx9gh5AmNVa0GFi3oIrwINSgkNiXMd3-MkKH_vkaDIAwCYzA6DnUfbCzhX3qPjVO6AuGgLUuLDuhLQOnZbO7GL38bv3x7C0Ci9Y0h0QZuxAHh5Lp_fURYSWnQ2vfe27Lsm536tw__uoNtU8H1A1zpElbNBAvUY39cX0-h9OyC82YMG350ymM9b2GdcSKfEHf3d_er9c8VeCx8f8InChSATfnc8x2-uBMbfr-7_ba-ut_9dATh0PDQ81d_HkcQThUCr2CwEScyd1-vV5fTfqMnwBIAuALWYzlAMsWGHjuswF9LdxkO_UO6sLqcbjRw28MBtfufhiwT3wQCKAP4vrtk-NLzdetw8e3mx9w6UTz8Kl_wD0rmRCH2CljvSzMt76PCZfSQekTPzTkxPXmfyyPfT-Qnxc7D0Rl6MqfxGT71-KZ5OuyFlMaqyhOvb293hK_pS1mWYUGDj8p90KBjuX_tNc68YXRYTq-Hs-X01_dPlxMtPZ_RsS4BgAFAehzDxS1z3TlQJVyBxAYdQtnpYVd634G_wFjFx73uue0aqQmPHUCOUKFGIxzKPtbVyoKyICDvKhJsB5mZzAKZBqmYYcbigLI-z3RWZzJP44BJSVMpMQrDvAzTIhJ5xIoiLVkyUxmnPGSUJzQOEpouoojmy3KJRV6wMmUxCSkehGr8vCxaU82UtR1mjAVJHM0akWNj_WnLucZn8G_7MzHazEzWfzTPu8qSkDbKOvuOcco1_pjue_p5uYKy7bQEAZ-cvG-HrauFA9miHb16bs0DKA0C7CMWqlQF2AK1MKpdzDrTZLVzj_4g4FvCt5VydZf3a53wrU9iaOaPpv0HC0f41g_GEr4dR_uU8f8CAAD__8_eIAo">