mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-25 12:49:50 +00:00
Regression test for PR#330.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2944bcaaed
commit
3a386d4929
44
test/Linker/2004-05-07-TypeResolution1.ll
Normal file
44
test/Linker/2004-05-07-TypeResolution1.ll
Normal file
@ -0,0 +1,44 @@
|
||||
; RUN: llvm-as -f < %s > %t1.bc
|
||||
; RUN: llvm-as -f < `dirname %s`/2004-05-07-TypeResolution2.ll > %t2.bc
|
||||
; RUN: llvm-link -f -o %t3.bc %t1.bc %t2.bc
|
||||
|
||||
target endian = little
|
||||
target pointersize = 32
|
||||
|
||||
%myint = type opaque
|
||||
%struct2 = type { %struct1 }
|
||||
|
||||
%struct1 = type { int, void (%struct2*)*, %myint *, int (uint *)* }
|
||||
|
||||
|
||||
%driver1 = global %struct1 zeroinitializer ; <%struct1*> [#uses=1]
|
||||
|
||||
%m1 = external global [1 x sbyte] * ; <%struct.task_struct**> [#uses=0]
|
||||
;%m1 = external global uint ; <%struct.task_struct**> [#uses=0]
|
||||
%str1 = constant [1 x ubyte] zeroinitializer
|
||||
%str2 = constant [2 x ubyte] zeroinitializer
|
||||
%str3 = constant [3 x ubyte] zeroinitializer
|
||||
%str4 = constant [4 x ubyte] zeroinitializer
|
||||
%str5 = constant [5 x ubyte] zeroinitializer
|
||||
%str6 = constant [6 x ubyte] zeroinitializer
|
||||
%str7 = constant [7 x ubyte] zeroinitializer
|
||||
%str8 = constant [8 x ubyte] zeroinitializer
|
||||
%str9 = constant [9 x ubyte] zeroinitializer
|
||||
%stra = constant [10 x ubyte] zeroinitializer
|
||||
%strb = constant [11 x ubyte] zeroinitializer
|
||||
%strc = constant [12 x ubyte] zeroinitializer
|
||||
%strd = constant [13 x ubyte] zeroinitializer
|
||||
%stre = constant [14 x ubyte] zeroinitializer
|
||||
%strf = constant [15 x ubyte] zeroinitializer
|
||||
%strg = constant [16 x ubyte] zeroinitializer
|
||||
%strh = constant [17 x ubyte] zeroinitializer
|
||||
|
||||
implementation ; Functions:
|
||||
|
||||
declare void %func(%struct2*)
|
||||
|
||||
void %tty_init() {
|
||||
entry:
|
||||
volatile store void (%struct2*)* %func, void (%struct2 *)** getelementptr (%struct1* %driver1, uint 0, uint 1)
|
||||
ret void
|
||||
}
|
25
test/Linker/2004-05-07-TypeResolution2.ll
Normal file
25
test/Linker/2004-05-07-TypeResolution2.ll
Normal file
@ -0,0 +1,25 @@
|
||||
; This file is used by testlink1.ll, so it doesn't actually do anything itself
|
||||
;
|
||||
; RUN: echo
|
||||
|
||||
target endian = little
|
||||
target pointersize = 32
|
||||
|
||||
%myint = type ushort
|
||||
%struct2 = type { %struct1 }
|
||||
%struct1 = type { int, void (%struct2*)*, %myint *, int (uint *)* }
|
||||
|
||||
implementation ; Functions:
|
||||
|
||||
internal void %f1 (%struct1* %tty) {
|
||||
loopentry.preheader:
|
||||
|
||||
; <void (%struct2*, ubyte)**> [#uses=1]
|
||||
; <void (%struct2*, ubyte)*> [#uses=0]
|
||||
|
||||
%tmp.2.i.i = getelementptr %struct1* %tty, uint 0, uint 1
|
||||
%tmp.3.i.i = volatile load void (%struct2*)** %tmp.2.i.i
|
||||
|
||||
ret void
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user