Go to file
Chris Lattner 3f32d69699 Fix a problem Eli ran into where we now reject incomplete arrays of
uncompleted struct types.  We now do what llvm-gcc does and compile
them into [i8 x 0].  If the type is later completed, we make sure that
it is appropriately cast.

We compile the terrible example to something like this now:

%struct.A = type { i32, i32, i32 }

@g = external global [0 x i8]

define void @_Z1fv() nounwind {
entry:
  call void @_Z3fooP1A(%struct.A* bitcast ([0 x i8]* @g to %struct.A*))
  ret void
}

declare void @_Z3fooP1A(%struct.A*)

define %struct.A* @_Z2f2v() nounwind {
entry:
  ret %struct.A* getelementptr inbounds ([0 x %struct.A]* bitcast ([0 x i8]* @g to [0 x %struct.A]*), i32 0, i64 1)
}

llvm-svn: 134972
2011-07-12 06:52:18 +00:00
clang Fix a problem Eli ran into where we now reject incomplete arrays of 2011-07-12 06:52:18 +00:00
compiler-rt <rdar://problem/9624306> clean up darwin platform to use xcrun. Set up variables in darwin_bni.mk. Use GetCNAVar in AppleBI.mk 2011-06-21 00:07:55 +00:00
debuginfo-tests Testcase for r133065 2011-06-15 17:57:23 +00:00
libcxx Make sure that __time_put constructors properly on non-Apple platforms. 2011-07-12 00:55:04 +00:00
libcxxabi In cxa_demangle.cpp, rewrite __parse_unresolved_name to reflect updated understanding and sync with updated clang mangling. Also fix think-o in __parse_encoding enabling the parsing of trailing .eh and .b. 2011-06-22 19:27:39 +00:00
lldb Added "command history" command to dump the command history. 2011-07-12 03:12:18 +00:00
llvm simplify assertions to not be completely redundant. 2011-07-12 05:26:21 +00:00
polly Fix for broken build 2011-07-09 03:10:22 +00:00