[LLVMbugs] [Bug 11243] New: -deadargelim changes function return value
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Oct 26 14:37:40 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=11243
Summary: -deadargelim changes function return value
Product: new-bugs
Version: 2.9
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: tbfleming at gmail.com
CC: llvmbugs at cs.uiuc.edu
-deadargelim replaces a constant pointer with null
Source
======
%InnerStruct = type { i8* }
%OuterStruct = type { i32, %InnerStruct }
@str = internal constant [4 x i8] c"aaa\00"
declare void @externalFunction(i8*)
define private fastcc %OuterStruct @privateFunction(%OuterStruct %a) {
entry:
ret %OuterStruct %a
}
define void @main() {
entry:
%0 = call fastcc %OuterStruct @privateFunction(%OuterStruct { i32 9,
%InnerStruct { i8* getelementptr inbounds ([4 x i8]* @str, i32 0, i32 0) } })
%s = extractvalue %OuterStruct %0, 1, 0
call void @externalFunction(i8* %s)
ret void
}
After -deadargelim
==================
%InnerStruct = type { i8* }
%OuterStruct = type { i32, %InnerStruct }
@str = internal constant [4 x i8] c"aaa\00"
declare void @externalFunction(i8*)
define private fastcc %InnerStruct @privateFunction() {
entry:
%oldret = extractvalue %OuterStruct zeroinitializer, 1
ret %InnerStruct %oldret
}
define void @main() {
entry:
%0 = call fastcc %InnerStruct @privateFunction()
%oldret = insertvalue %OuterStruct undef, %InnerStruct %0, 1
%s = extractvalue %OuterStruct %oldret, 1, 0
call void @externalFunction(i8* %s)
ret void
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list