xref: /aosp_15_r20/external/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s  -globalopt -disable-output
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
4*9880d681SAndroid Build Coastguard Workertarget triple = "i686-apple-darwin8"
5*9880d681SAndroid Build Coastguard Worker        %struct.SFLMutableListItem = type { i16 }
6*9880d681SAndroid Build Coastguard Worker        %struct.__CFDictionary = type opaque
7*9880d681SAndroid Build Coastguard Worker        %struct.__CFString = type opaque
8*9880d681SAndroid Build Coastguard Worker        %struct.__builtin_CFString = type { i32*, i32, i8*, i32 }
9*9880d681SAndroid Build Coastguard Worker@_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey = internal global %struct.__CFString* null             ; <%struct.__CFString**> [#uses=2]
10*9880d681SAndroid Build Coastguard Worker@_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey = internal global %struct.__CFString* null               ; <%struct.__CFString**> [#uses=7]
11*9880d681SAndroid Build Coastguard Worker@0 = internal constant %struct.__builtin_CFString {
12*9880d681SAndroid Build Coastguard Worker    i32* getelementptr ([0 x i32], [0 x i32]* @__CFConstantStringClassReference, i32 0, i32 0),
13*9880d681SAndroid Build Coastguard Worker    i32 1992,
14*9880d681SAndroid Build Coastguard Worker    i8* getelementptr ([14 x i8], [14 x i8]* @.str, i32 0, i32 0),
15*9880d681SAndroid Build Coastguard Worker    i32 13 }, section "__DATA,__cfstring"               ; <%struct.__builtin_CFString*>:0 [#uses=1]
16*9880d681SAndroid Build Coastguard Worker@__CFConstantStringClassReference = external global [0 x i32]           ; <[0 x i32]*> [#uses=1]
17*9880d681SAndroid Build Coastguard Worker@.str = internal constant [14 x i8] c"AlwaysVisible\00"         ; <[14 x i8]*> [#uses=1]
18*9880d681SAndroid Build Coastguard Worker@_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey = internal global %struct.__CFString* null         ; <%struct.__CFString**> [#uses=2]
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerdefine %struct.__CFString* @_Z19SFLGetVisibilityKeyv() {
21*9880d681SAndroid Build Coastguard Workerentry:
22*9880d681SAndroid Build Coastguard Worker        %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey              ; <%struct.__CFString*> [#uses=1]
23*9880d681SAndroid Build Coastguard Worker        ret %struct.__CFString* %tmp1
24*9880d681SAndroid Build Coastguard Worker}
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerdefine %struct.__CFString* @_Z22SFLGetAlwaysVisibleKeyv() {
27*9880d681SAndroid Build Coastguard Workerentry:
28*9880d681SAndroid Build Coastguard Worker        %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey                ; <%struct.__CFString*> [#uses=1]
29*9880d681SAndroid Build Coastguard Worker        %tmp2 = icmp eq %struct.__CFString* %tmp1, null         ; <i1> [#uses=1]
30*9880d681SAndroid Build Coastguard Worker        br i1 %tmp2, label %cond_true, label %cond_next
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workercond_true:              ; preds = %entry
33*9880d681SAndroid Build Coastguard Worker        store %struct.__CFString* bitcast (%struct.__builtin_CFString* @0 to %struct.__CFString*), %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey
34*9880d681SAndroid Build Coastguard Worker        br label %cond_next
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workercond_next:              ; preds = %entry, %cond_true
37*9880d681SAndroid Build Coastguard Worker        %tmp4 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey                ; <%struct.__CFString*> [#uses=1]
38*9880d681SAndroid Build Coastguard Worker        ret %struct.__CFString* %tmp4
39*9880d681SAndroid Build Coastguard Worker}
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerdefine %struct.__CFString* @_Z21SFLGetNeverVisibleKeyv() {
42*9880d681SAndroid Build Coastguard Workerentry:
43*9880d681SAndroid Build Coastguard Worker        %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey          ; <%struct.__CFString*> [#uses=1]
44*9880d681SAndroid Build Coastguard Worker        ret %struct.__CFString* %tmp1
45*9880d681SAndroid Build Coastguard Worker}
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerdefine %struct.__CFDictionary* @_ZN18SFLMutableListItem18GetPrefsDictionaryEv(%struct.SFLMutableListItem* %this) {
48*9880d681SAndroid Build Coastguard Workerentry:
49*9880d681SAndroid Build Coastguard Worker        %tmp4 = getelementptr %struct.SFLMutableListItem, %struct.SFLMutableListItem* %this, i32 0, i32 0  ; <i16*> [#uses=1]
50*9880d681SAndroid Build Coastguard Worker        %tmp5 = load i16, i16* %tmp4         ; <i16> [#uses=1]
51*9880d681SAndroid Build Coastguard Worker        %tmp6 = icmp eq i16 %tmp5, 0            ; <i1> [#uses=1]
52*9880d681SAndroid Build Coastguard Worker        br i1 %tmp6, label %cond_next22, label %cond_true
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Workercond_true:              ; preds = %entry
55*9880d681SAndroid Build Coastguard Worker        %tmp9 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey                ; <%struct.__CFString*> [#uses=1]
56*9880d681SAndroid Build Coastguard Worker        %tmp10 = icmp eq %struct.__CFString* %tmp9, null                ; <i1> [#uses=1]
57*9880d681SAndroid Build Coastguard Worker        br i1 %tmp10, label %cond_true13, label %cond_next22
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workercond_true13:            ; preds = %cond_true
60*9880d681SAndroid Build Coastguard Worker        store %struct.__CFString* bitcast (%struct.__builtin_CFString* @0 to %struct.__CFString*), %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey
61*9880d681SAndroid Build Coastguard Worker        br label %cond_next22
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Workercond_next22:            ; preds = %entry, %cond_true13, %cond_true
64*9880d681SAndroid Build Coastguard Worker        %iftmp.1.0.in = phi %struct.__CFString** [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true ], [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true13 ], [ @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey, %entry ]             ; <%struct.__CFString**> [#uses=1]
65*9880d681SAndroid Build Coastguard Worker        %iftmp.1.0 = load %struct.__CFString*, %struct.__CFString** %iftmp.1.0.in            ; <%struct.__CFString*> [#uses=1]
66*9880d681SAndroid Build Coastguard Worker        %tmp24 = load %struct.__CFString*, %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey             ; <%struct.__CFString*> [#uses=1]
67*9880d681SAndroid Build Coastguard Worker        %tmp2728 = bitcast %struct.__CFString* %tmp24 to i8*            ; <i8*> [#uses=1]
68*9880d681SAndroid Build Coastguard Worker        %tmp2930 = bitcast %struct.__CFString* %iftmp.1.0 to i8*               ; <i8*> [#uses=1]
69*9880d681SAndroid Build Coastguard Worker        call void @_Z20CFDictionaryAddValuePKvS0_( i8* %tmp2728, i8* %tmp2930 )
70*9880d681SAndroid Build Coastguard Worker        ret %struct.__CFDictionary* undef
71*9880d681SAndroid Build Coastguard Worker}
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Workerdeclare void @_Z20CFDictionaryAddValuePKvS0_(i8*, i8*)
74*9880d681SAndroid Build Coastguard Worker
75