<html>
<head>
<base href="http://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - MC generated wrong code for label arithmetic"
href="http://llvm.org/bugs/show_bug.cgi?id=22060">22060</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>MC generated wrong code for label arithmetic
</td>
</tr>
<tr>
<th>Product</th>
<td>libraries
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Windows NT
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>MC
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>humeafo@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=13606" name="attach_13606" title="the sample">attachment 13606</a> <a href="attachment.cgi?id=13606&action=edit" title="the sample">[details]</a></span>
the sample
see aa.s in attachment, then
llvm-mc -arch=x86 -triple=pc-windows-msvc -filetype=obj aa.s -o aa.obj
we disassemble the aa.obj and can found following
calll L18$pb
L18$pb:
popl %eax
leal "?WndProc@@YGJPAUHWND__@@IIJ@Z"-L18$pb(%eax), %eax
movl 24(%ebp), %ecx
movl 20(%ebp), %edx
movl 16(%ebp), %esi
movl 12(%ebp), %edi
movl 8(%ebp), %ebx
movl %eax, 76(%esp) # 4-byte Spill
retl
.def "?WndProc@@YGJPAUHWND__@@IIJ@Z";
.scl 2;
.type 32;
.endef
.globl "?WndProc@@YGJPAUHWND__@@IIJ@Z"
"?WndProc@@YGJPAUHWND__@@IIJ@Z": # @"\01?WndProc@@YGJPAUHWND__@@IIJ@Z"
# BB#0:
pushl %ebp
movl %esp, %ebp
retl
is assembled to
.text:00000000 public
?SetUpWindow@@YAPAUHWND__@@PBD0HHPAUHINSTANCE__@@@Z
.text:00000000 ?SetUpWindow@@YAPAUHWND__@@PBD0HHPAUHINSTANCE__@@@Z proc near
.text:00000000
.text:00000000 arg_0 = dword ptr 8
.text:00000000 arg_4 = dword ptr 0Ch
.text:00000000 arg_8 = dword ptr 10h
.text:00000000 arg_C = dword ptr 14h
.text:00000000 arg_10 = dword ptr 18h
.text:00000000
.text:00000000 push ebp
.text:00000001 mov ebp, esp
.text:00000003
.text:00000003 loc_3:
.text:00000003 push ebx
.text:00000004 push edi
.text:00000005 push esi
.text:00000006 and esp, 0FFFFFFF8h
.text:00000009 sub esp, 80h
.text:0000000F call $+5
.text:00000014 pop eax
.text:00000015
.text:00000015 loc_15:
.text:00000015 lea eax, [eax+3]
.text:0000001B mov ecx, [ebp+arg_10]
.text:0000001E mov edx, [ebp+arg_C]
.text:00000021 mov esi, [ebp+arg_8]
.text:00000024 mov edi, [ebp+arg_4]
.text:00000027 mov ebx, [ebp+arg_0]
.text:0000002A mov [esp+4Ch], eax
.text:0000002E retn
.text:0000002E ?SetUpWindow@@YAPAUHWND__@@PBD0HHPAUHINSTANCE__@@@Z endp ;
sp-analysis failed
.text:00000015 lea eax, [eax+3]
obviuosly it is not the right code for:
leal "?WndProc@@YGJPAUHWND__@@IIJ@Z"-L18$pb(%eax), %eax</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>