llvm/lib
Chris Lattner a9a9e07d1c Fix two classes of bugs. First:
validate an invariant so that the asmparser rejects a bad construct
instead of the verifier.  Before:

llvm-as: assembly parsed, but does not verify as correct!
Invalid struct return type!
i64 (%struct.Type*, %struct.Type*)* @foo

after:

llvm-as: t.ll:5:8: functions with 'sret' argument must return void
define i64 @foo(%struct.Type* noalias nocapture sret %agg.result, %struct.Type* nocapture byval %t) nounwind {
       ^


Second, check that void is only used where allowed (in function return types) not in
arbitrary places, fixing PR3747 - Crash in llvm-as with void field in struct.  We
now reject that example with:

$ llvm-as t.ll
llvm-as: t.ll:1:12: struct element can not have void type
%x = type {void}
           ^





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-09 04:49:14 +00:00
..
Analysis Introduce new linkage types linkonce_odr, weak_odr, common_odr 2009-03-07 15:45:40 +00:00
Archive Add the private linkage. 2009-01-15 20:18:42 +00:00
AsmParser Fix two classes of bugs. First: 2009-03-09 04:49:14 +00:00
Bitcode Introduce new linkage types linkonce_odr, weak_odr, common_odr 2009-03-07 15:45:40 +00:00
CodeGen If a MI uses the same register more than once, only mark one of them as 'kill'. 2009-03-08 03:58:35 +00:00
CompilerDriver Reorganize llvmc code. 2009-03-02 09:01:14 +00:00
Debugger Test commit 2009-03-08 11:43:20 +00:00
ExecutionEngine Introduce new linkage types linkonce_odr, weak_odr, common_odr 2009-03-07 15:45:40 +00:00
Linker Apply ODR linkage changes accidentally dropped during 2009-03-08 13:35:23 +00:00
Support Use c_str() to force the string to be nul-terminated. 2009-03-06 18:13:15 +00:00
System add some explicit llvm:: qualifiers to the unix side, fix problems on the windows side. 2009-03-08 19:13:45 +00:00
Target do not export all the X86FastISel symbols, ever. 2009-03-08 18:44:31 +00:00
Transforms Keep calling-convention and tail-call bit when creating new invoke or call. 2009-03-08 19:02:17 +00:00
VMCore Fix PR3746 - Crash in isel with GEP of function pointer 2009-03-09 04:46:40 +00:00
Makefile Reorganize llvmc code. 2009-03-02 09:01:14 +00:00