http://llvm.org/bugs/show_bug.cgi?id=9900
Summary: scalarrepl-ssa can produce invalid code for zero sized
array members
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Scalar Optimizations
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Running opt -scalarrepl-ssa on
-----------------------------
arget datalayout = "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32"
%foobar = type { i32, [0 x i8] }
define void @f(%foobar %arg) {
%tmp = alloca %foobar
store %foobar %arg, %foobar* %tmp
%tmp113 = bitcast %foobar* %tmp to i8*
ret void
}
---------------------------
Will produce
-------------------------------
target datalayout = "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32"
%foobar = type { i32, [0 x i8] }
define void @f(%foobar %arg) {
%arg1 = extractvalue %foobar %arg, 0
%arg2 = extractvalue %foobar %arg, 1
ret void
}
----------------------------------
llc is happy with the first code, but crashes on the second on
SelectionDAGBuilder::visitExtractValue when it tries to access the first
element of a zero sized ValValueVTs.
We have two options. One is declaring zero sized array values illegal and
fixing scalarrepl to not produce them and the verifier to check for them.
Another one is making CodeGen handle them correctly.
I am don't see much value is having zero size array values, so I am reporting
this on scalarrrepl. Let me know if you think we should allow them and fix
CodeGen instead.
--
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs