<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/114143>114143</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
commit c04a05d898982614a2df80d928b97ed4f8c49b60 broke mcmodel=medium on windows
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
erik895
</td>
</tr>
</table>
<pre>
```
int foo = 32;
int* go()
{
return &foo;
}
```
compiled with clang on windows:
```
clang.exe -mcmodel=medium -Wl,/SUBSYSTEM:CONSOLE -o a.exe -nostdlib -Wl,-entry:go test.cpp
```
used to generate:
```
llvm-objdump.exe -d a.exe
Disassembly of section .text:
0000000140001000 <.text>:
140001000: 48 b8 00 30 00 40 01 00 00 00 movabsq $0x140003000, %rax # imm = 0x140003000
14000100a: c3 retq
```
After commit c04a05d898982614a2df80d928b97ed4f8c49b60
more specific this chunk:
```
- CodeModel::Model M = getTargetMachine().getCodeModel();
+ // The following OpFlags under RIP-rel PIC use RIP.
if (Subtarget.isPICStyleRIPRel() &&
- (M == CodeModel::Small || M == CodeModel::Kernel))
+ (OpFlags == X86II::MO_NO_FLAG || OpFlags == X86II::MO_COFFSTUB ||
+ OpFlags == X86II::MO_DLLIMPORT))
return X86ISD::WrapperRIP;
```
The output changes to
```
0000000140001000 <.text>:
140001000: 48 8d 05 f9 1f 00 00 leaq 0x1ff9(%rip), %rax # 0x140003000
140001007: c3 retq
```
I think its wrong to generate rip relative with mcmodel=medium.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVV1v4jgX_jXm5ojIsQMkF7mgUF6htx1Q6Wh2r0ZOfBI8deLUdkr771f5aKHdaVe7luUY_Dznw-fDwjlV1ogpmV2R2XoiWn80NkWrHuJkNsmMfEnJnI6TrgldqtpDYQwQvgbOCL8a_n47JGwJpSEsJiwZjxYjBiz61tZA2Lww5kxdrMfNe03DmpuqURolnJQ_Qq5FXYKp4aRqaU6O8OVvuT0uwGeEaZVXRqImfF2hVG0F0x-asBVhm8P3q8Ofh_vrW8KXq923w-7mGqYGxMCrjfNSq2zET7H29oXwZWnAo_NB3jRfmN06lOANlFijFR4_M1Trp2pqsl-yrZpeL0zlYMGltLVywjmsMv0CpgCHuVemhsDjsz9L7lc6jDDqFkopEL4acddv0LdTwpcQxZDFQClw2q0RBRp2m2GOozJPInOPQFhEn3s67-hsBYTNrHgGwjioqurz4hLxTp_o9OW8S4THLy5vWXi0kJuqUh5yGgk6k3ESJzGbh5FgsoipTFicJQuUURHnUZLNKYxJBpWxCK7BXBUqB39UDvJjWz98FoIpwMpIvB2yZEn4st_Cbe9Lif5e2BL9rciPqsYhs4MS_Zk0JPtbPrMrAMI2hG3g_ohQGK3NSdUl7JqNFqWDtpZo4W67n1rUsN-uoHXY_Q5efQBVAGHxoc18rzxQbr9dHfyLxrvt_u5VZ1dK3Xz1oxuExb3lnfEf_DpUQmsgixVZrOAz0P_R1p385FzAnUOj6FcXRu4f8Xy7HS9t9_Pb7ufmZvm_Vw1fYle7zeZw__1qBH_Q9DV3fXOzvd3v7u4vrexpY4fp4If1gP9hRdOgvdvuzxH6XdJ1oTKtb1oP-VHUJTrw5hLwgfWfCi2WQGdQJBAW7-sLNIrH7kufw6JI-vDOrGp6D9-KbIwC_7zCFmOFfT7-ofa2XcXUD6C8g5M1dXnZxcCqBixq4dUTDh35Y3sNJjLlMuGJmGAaLjhlUZjE0eSYznmWxTFbsCjjNM6LUCRhJOezGCXPIwwnKmUdmrKEsWjOokAmUtAsE8VMhIzmMYkoVkLpoOuagbHlRDnXYhqGURjxiRYZate_ZYzVeIL-lDDWPW027Vtt1paORFQr591ZjFdeY_pvG05mzQP-7QIuXqdJa3V69L7p36m-I5TKH9ssyE1F2KbTP36mjTW_MPeEbXqrHWGb0a2nlP0VAAD__8THFKA">