Fix for PR1633: Verifier doesn't fully verify GC intrinsics

LLVM now enforces the following prototypes for the write barriers:

<ty>* @llvm.gcread(<ty2>*, <ty>**)
void @llvm.gcwrite(<ty>*, <ty2>*, <ty>**)

And for @llvm.gcroot, the first stack slot is verified to be an alloca or a 
bitcast of an alloca.

Fixes test/CodeGen/Generic/GC/lower_gcroot.ll, which violated these.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42051 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Gordon Henriksen
2007-09-17 20:30:04 +00:00
parent ca8035e356
commit 8c33da5dc4
7 changed files with 108 additions and 1 deletions

View File

@@ -3,7 +3,8 @@
%Env = type opaque*
define void @.main(%Env) {
call void @llvm.gcroot( %Env* null, %Env null )
%Root = alloca %Env
call void @llvm.gcroot( %Env* %Root, %Env null )
unreachable
}