http://llvm.org/bugs/show_bug.cgi?id=21035
Bug ID: 21035
Summary: Register clobber information for asm blocks jumped to
can be incorrect
Product: clang
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Frontend
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Classification: Unclassified
Consider this test case:
void f() {
__asm {
mov edx, 1
jmp lbl
}
__asm {
lbl:
mov ecx, 2
}
}
We currently generate the following code:
define void @f() #0 {
entry:
tail call void asm sideeffect inteldialect "mov edx, $$1\0A\09jmp
L__MSASMLABEL_.0__lbl", "~{edx},~{dirflag},~{fpsr},~{flags}"() #1, !srcloc !5
tail call void asm sideeffect inteldialect "L__MSASMLABEL_.0__lbl:\0A\09mov
ecx, $$2", "~{ecx},~{dirflag},~{fpsr},~{flags}"() #1, !srcloc !6
ret void
}
However, the second asm block also clobbers edx, through the jump from the
first one.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs