1*35f70200SMichael Kruse; RUN: opt %loadPolly -tbaa -polly-codegen -disable-output %s 2*35f70200SMichael Kruse; 3*35f70200SMichael Kruse; Check that we do not crash here. 4*35f70200SMichael Kruse; 5*35f70200SMichael Kruse; ModuleID = 'bugpoint-reduced-simplified.bc' 6*35f70200SMichael Krusetarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 7*35f70200SMichael Kruse 8*35f70200SMichael Kruse%"DOMParentNode" = type { %"DOMNode"*, %"DOMNode"*, %"DOMNodeListImpl" } 9*35f70200SMichael Kruse%"DOMDocumentRange" = type { i32 (...)** } 10*35f70200SMichael Kruse%"DOMXPathEvaluator" = type { i32 (...)** } 11*35f70200SMichael Kruse%"DOMDocumentTraversal" = type { i32 (...)** } 12*35f70200SMichael Kruse%"DOMNode" = type { i32 (...)** } 13*35f70200SMichael Kruse%"DOMNodeListImpl" = type { %"DOMNodeList", %"DOMNode"* } 14*35f70200SMichael Kruse%"DOMNodeList" = type { i32 (...)** } 15*35f70200SMichael Kruse%"DOMElementImpl" = type { %"DOMElement", %"DOMNodeImpl", %"DOMParentNode", %"DOMChildNode", %"DOMAttrMapImpl"*, %"DOMAttrMapImpl"*, i16* } 16*35f70200SMichael Kruse%"DOMElement" = type { %"DOMNode" } 17*35f70200SMichael Kruse%"DOMNodeImpl" = type <{ %"DOMNode"*, i16, [6 x i8] }> 18*35f70200SMichael Kruse%"DOMChildNode" = type { %"DOMNode"*, %"DOMNode"* } 19*35f70200SMichael Kruse%"DOMAttrMapImpl" = type <{ %"DOMNamedNodeMapImpl", i8, [7 x i8] }> 20*35f70200SMichael Kruse%"DOMNamedNodeMapImpl" = type { %"DOMNamedNodeMap", %"DOMNode"* } 21*35f70200SMichael Kruse%"DOMNamedNodeMap" = type { i32 (...)** } 22*35f70200SMichael Kruse%"DOMTextImpl" = type { %"DOMText", %"DOMNodeImpl", %"DOMChildNode" } 23*35f70200SMichael Kruse%"DOMText" = type { %"DOMCharacterData" } 24*35f70200SMichael Kruse%"DOMCharacterData" = type { %"DOMNode" } 25*35f70200SMichael Kruse 26*35f70200SMichael Kruse; Function Attrs: uwtable 27*35f70200SMichael Krusedefine void @_ZN11xercesc_2_513DOMParentNode9lastChildEPNS_7DOMNodeE(%"DOMParentNode"* %this, %"DOMNode"* %node) #0 align 2 { 28*35f70200SMichael Kruseentry: 29*35f70200SMichael Kruse br label %entry.split 30*35f70200SMichael Kruse 31*35f70200SMichael Kruseentry.split: ; preds = %entry 32*35f70200SMichael Kruse %fFirstChild = getelementptr inbounds %"DOMParentNode", %"DOMParentNode"* %this, i32 0, i32 1 33*35f70200SMichael Kruse %0 = load %"DOMNode"*, %"DOMNode"** %fFirstChild, align 8, !tbaa !1 34*35f70200SMichael Kruse %cmp = icmp ne %"DOMNode"* %0, null 35*35f70200SMichael Kruse br i1 %cmp, label %if.then, label %if.end 36*35f70200SMichael Kruse 37*35f70200SMichael Kruseif.then: ; preds = %entry.split 38*35f70200SMichael Kruse %1 = bitcast %"DOMNode"* %0 to %"DOMElementImpl"* 39*35f70200SMichael Kruse %fNode.i = getelementptr inbounds %"DOMElementImpl", %"DOMElementImpl"* %1, i32 0, i32 1 40*35f70200SMichael Kruse %flags.i.i = getelementptr inbounds %"DOMNodeImpl", %"DOMNodeImpl"* %fNode.i, i32 0, i32 1 41*35f70200SMichael Kruse %2 = load i16, i16* %flags.i.i, align 8, !tbaa !7 42*35f70200SMichael Kruse %3 = bitcast %"DOMNode"* %0 to %"DOMTextImpl"* 43*35f70200SMichael Kruse %fChild.i = getelementptr inbounds %"DOMTextImpl", %"DOMTextImpl"* %3, i32 0, i32 2 44*35f70200SMichael Kruse %fChild1.i = getelementptr inbounds %"DOMElementImpl", %"DOMElementImpl"* %1, i32 0, i32 3 45*35f70200SMichael Kruse %retval.0.i = select i1 undef, %"DOMChildNode"* %fChild.i, %"DOMChildNode"* %fChild1.i 46*35f70200SMichael Kruse %previousSibling = getelementptr inbounds %"DOMChildNode", %"DOMChildNode"* %retval.0.i, i32 0, i32 0 47*35f70200SMichael Kruse store %"DOMNode"* %node, %"DOMNode"** %previousSibling, align 8, !tbaa !10 48*35f70200SMichael Kruse br label %if.end 49*35f70200SMichael Kruse 50*35f70200SMichael Kruseif.end: ; preds = %if.then, %entry.split 51*35f70200SMichael Kruse ret void 52*35f70200SMichael Kruse} 53*35f70200SMichael Kruse 54*35f70200SMichael Kruse!0 = !{!"clang version 3.9.0"} 55*35f70200SMichael Kruse!1 = !{!2, !3, i64 8} 56*35f70200SMichael Kruse!2 = !{!"_ZTSN11xercesc_2_513DOMParentNodeE", !3, i64 0, !3, i64 8, !6, i64 16} 57*35f70200SMichael Kruse!3 = !{!"any pointer", !4, i64 0} 58*35f70200SMichael Kruse!4 = !{!"omnipotent char", !5, i64 0} 59*35f70200SMichael Kruse!5 = !{!"Simple C++ TBAA"} 60*35f70200SMichael Kruse!6 = !{!"_ZTSN11xercesc_2_515DOMNodeListImplE", !3, i64 8} 61*35f70200SMichael Kruse!7 = !{!8, !9, i64 8} 62*35f70200SMichael Kruse!8 = !{!"_ZTSN11xercesc_2_511DOMNodeImplE", !3, i64 0, !9, i64 8} 63*35f70200SMichael Kruse!9 = !{!"short", !4, i64 0} 64*35f70200SMichael Kruse!10 = !{!11, !3, i64 0} 65*35f70200SMichael Kruse!11 = !{!"_ZTSN11xercesc_2_512DOMChildNodeE", !3, i64 0, !3, i64 8} 66