Skip to content

Lo is not <= Hi in range emission code! #3112

@regehr

Description

@regehr
Bugzilla Link 2740
Resolution FIXED
Resolved on Sep 11, 2008 12:55
Version unspecified
OS Linux
CC @efriedma-quic,@sunfishcode

Extended Description

Seen on r55591 on Ubuntu Hardy on ia32.

regehr@john-home:~/volatile/tmp18$ llvm-gcc -O1 small.c
cc1: InstructionCombining.cpp:3261: llvm::Instruction*::InstCombiner::InsertRangeTest(llvm::Value*, llvm::Constant*, llvm::Constant*, bool, bool, llvm::Instruction&): Assertion `cast(ConstantExpr::getICmp((isSigned ? ICmpInst::ICMP_SLE:ICmpInst::ICMP_ULE), Lo, Hi))->getZExtValue() && "Lo is not <= Hi in range emission code!"' failed.
small.c: In function ‘func_75’:
small.c:19: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://developer.apple.com/bugreporter for instructions.

regehr@john-home:~/volatile/tmp18$ cat small.c

typedef short int int16_t;
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
static inline int
safe_mod_s_s (int si1, int si2)
{
return si1 / si2;
}
static inline unsigned int
safe_div_u_u (unsigned int ui1, unsigned int ui2)
{
return ui1;
}

uint8_t g_6;
uint32_t
func_75 (int16_t p_76, uint8_t p_78, uint32_t p_79, uint32_t p_80,
uint32_t p_81, uint8_t p_82)
{
uint32_t l_106 = 0xB0CEA4F5L;
uint32_t l_92 = -1L;
1, (func_97
((safe_mod_s_s ((safe_div_s_s (p_79, 1)) >= 1, l_106)) ==
(safe_div_u_u (l_92, 1)), 1) <= (safe_div_u_u (g_6, 1)));
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzilla

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions