mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-17 03:30:28 +00:00
e78760e179
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8558 91177308-0d34-0410-b5e6-96231b3b80d8
25 lines
1.1 KiB
LLVM
25 lines
1.1 KiB
LLVM
; This testcase found a bug in ConvertableToGEP that could cause an infinite loop
|
|
; Note that this code is actually miscompiled from the input source, but despite
|
|
; that, level raise should not hang!
|
|
;
|
|
; RUN: llvm-as < %s | opt -raise
|
|
|
|
%Disjunct = type { \2 *, short, sbyte, sbyte *, { short, short, sbyte, sbyte, \2, sbyte * } *, { short, short, sbyte, sbyte, \2, sbyte * } * }
|
|
%chosen_disjuncts = uninitialized global %Disjunct * * ; <%Disjunct * * *> [#uses=1]
|
|
implementation
|
|
|
|
void "build_image_array"()
|
|
begin
|
|
bb0: ;[#uses=0]
|
|
%reg109 = getelementptr %Disjunct * * * %chosen_disjuncts, long 7 ; <%Disjunct * * *> [#uses=1]
|
|
%reg108 = load %Disjunct * * * %reg109 ; <%Disjunct * *> [#uses=1]
|
|
%reg1000 = getelementptr %Disjunct * * %reg108, long 3 ; <%Disjunct * *> [#uses=1]
|
|
%cast1007 = cast %Disjunct * * %reg1000 to sbyte * * ; <sbyte * *> [#uses=1]
|
|
%reg110 = load sbyte * * %cast1007 ; <sbyte *> [#uses=1]
|
|
%cast1008 = cast ulong 4 to sbyte * ; <sbyte *> [#uses=1]
|
|
%A = cast sbyte * %reg110 to ulong
|
|
%B = cast sbyte * %cast1008 to ulong
|
|
%reg1001 = add ulong %A, %B ; <sbyte *> [#uses=0]
|
|
ret void
|
|
end
|