<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/101346>101346</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Questionable MSVC compatibility break after we always defining begin symbol for a section
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mc,
platform:windows
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
KanRobert
</td>
</tr>
</table>
<pre>
```
void bar();
#pragma alloc_text("bar", bar)
void bar() {}
```
**Clang** after https://github.com/llvm/llvm-project/pull/96459
```
clang --target=x86_64-pc-windows-msvc
error: symbol 'bar' is already defined
```
(passed in 18.1 release)
**MSVC**
```
bar SEGMENT
bar PROC
ret 0
bar ENDP
bar ENDS
```
https://godbolt.org/z/crEzMzzqj
I am not sure whether putting a function is a section with same name is ill-formed. **GCC** also reports an error at assemble stage
```
__attribute__ ((section ("bar"))) void bar() {}
```
```
Error: symbol `bar' is already defined
```
@MaskRay @aengelke
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVE1vszgQ_jXmMkoEhkA4cEiT8Gq1SvfddrXXaAwDcWswa5ukya9fAYnaVFWlWpY_xh6PZ55nBq2VdUuUscUDW2w87N1Bm-xPbJ-0IOM8octzxmL_2v0N81dHLUsQaBhfMp6y8GESX0cedgbrBgGV0sXe0ZsbL_JRgzO-nnTTj1r3TwJLHliygeuNe-s3M0NfK2zraQlYOTJwcK6zLFwxnjOe19IdejEvdMN4rtTxNs06o1-ocIznXa8U43kaR4v0S3vFYANmM4emJsfCzdsy3sfRrCtmJ9mW-mRnjT0W8PF3ZIw2LFyBPTdCK2A8GZ1LQFpAZQjLM5RUyZbKr53kyw6tpRJkC8FyHoAhRWjpU9wm33fP_66n1d3Z_ZMCDTxvf-22j_-8C4b2--mv9SSBazPkxtm_v7h93Px-l2wfN8_fAPQJCF0Krdxcm5rx_MJ4XpjtZXe5_PfyUekPwAZa7cD2huB0IHcgA13vnGxrQKj6tnBSt2MYwdK0OUl3AIsNQTsM0oJUalZp01A5hykwv9brG0-U1WCo08ZZwBZGrAAdDPFuhCKwDmv6JpL7PTpnpOgd7fcwUnZ5-8s91dOpw0_ofb_dfmZS7P-QSdMY-Tu0r094Bhb5SG1N6pXAK7OwTMMUPcqChPMoTLjPvUNGmPrLKg0oEGEo0iRYLNLUp0VcYpEssfRkxn0e-UkYBFEUR3weJiIqUh5XFaZUCsEinxqUaj7k24C7J63tKQv8IIxiT6EgZceyw3lTTIWBcd4pdANyLFxds2s4Wmw8k42JK_rasshX0jr7_rSTTlH2d092AAEHEIecgEI3HToppJLuDMIQvl7rxIkA1QnPdgreQC9BtWxvca4GTtwY5vVGZT-uLKO_lvH86vIx4_8HAAD__7BAk6k">