mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
Fix rdar://6505632, an llc crash on 483.xalancbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62470 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
15c94d08ab
commit
d62284a804
@ -688,7 +688,8 @@ bool AddressingModeMatcher::MatchScaledValue(Value *ScaleReg, int64_t Scale,
|
||||
// to see if ScaleReg is actually X+C. If so, we can turn this into adding
|
||||
// X*Scale + C*Scale to addr mode.
|
||||
ConstantInt *CI; Value *AddLHS;
|
||||
if (match(ScaleReg, m_Add(m_Value(AddLHS), m_ConstantInt(CI)))) {
|
||||
if (isa<Instruction>(ScaleReg) && // not a constant expr.
|
||||
match(ScaleReg, m_Add(m_Value(AddLHS), m_ConstantInt(CI)))) {
|
||||
TestAddrMode.ScaledReg = AddLHS;
|
||||
TestAddrMode.BaseOffs += CI->getSExtValue()*TestAddrMode.Scale;
|
||||
|
||||
|
36
test/CodeGen/X86/2009-01-18-ConstantExprCrash.ll
Normal file
36
test/CodeGen/X86/2009-01-18-ConstantExprCrash.ll
Normal file
@ -0,0 +1,36 @@
|
||||
; RUN: llvm-as < %s | llc
|
||||
; rdar://6505632
|
||||
; reduced from 483.xalancbmk
|
||||
|
||||
target 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-f80:128:128"
|
||||
target triple = "i386-apple-darwin7"
|
||||
%"struct.std::basic_ostream<char,std::char_traits<char> >.base" = type { i32 (...)** }
|
||||
%"struct.xercesc_2_5::ASCIIRangeFactory" = type { %"struct.std::basic_ostream<char,std::char_traits<char> >.base", i8, i8 }
|
||||
@_ZN11xercesc_2_5L17gIdeographicCharsE = external constant [7 x i16] ; <[7 x i16]*> [#uses=3]
|
||||
|
||||
define void @_ZN11xercesc_2_515XMLRangeFactory11buildRangesEv(%"struct.xercesc_2_5::ASCIIRangeFactory"* %this) {
|
||||
entry:
|
||||
br i1 false, label %bb5, label %return
|
||||
|
||||
bb5: ; preds = %entry
|
||||
br label %bb4.i.i
|
||||
|
||||
bb4.i.i: ; preds = %bb4.i.i, %bb5
|
||||
br i1 false, label %bb.i51, label %bb4.i.i
|
||||
|
||||
bb.i51: ; preds = %bb.i51, %bb4.i.i
|
||||
br i1 false, label %bb4.i.i70, label %bb.i51
|
||||
|
||||
bb4.i.i70: ; preds = %bb4.i.i70, %bb.i51
|
||||
br i1 false, label %_ZN11xercesc_2_59XMLString9stringLenEPKt.exit.i73, label %bb4.i.i70
|
||||
|
||||
_ZN11xercesc_2_59XMLString9stringLenEPKt.exit.i73: ; preds = %bb4.i.i70
|
||||
%0 = load i16* getelementptr ([7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE, i32 0, i32 add (i32 ashr (i32 sub (i32 ptrtoint (i16* getelementptr ([7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE, i32 0, i32 4) to i32), i32 ptrtoint ([7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE to i32)), i32 1), i32 1)), align 4 ; <i16> [#uses=0]
|
||||
br label %bb4.i5.i141
|
||||
|
||||
bb4.i5.i141: ; preds = %bb4.i5.i141, %_ZN11xercesc_2_59XMLString9stringLenEPKt.exit.i73
|
||||
br label %bb4.i5.i141
|
||||
|
||||
return: ; preds = %entry
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue
Block a user