[LLVMbugs] [Bug 7749] New: ICE: Stack slot too small for load

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Jul 29 09:09:43 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=7749

           Summary: ICE: Stack slot too small for load
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: regehr at cs.utah.edu
                CC: llvmbugs at cs.uiuc.edu


regehr at john-home:~/volatile/bugs/tmp327$ clang -O1 -c small.c -w
clang: X86InstrInfo.cpp:2037: virtual void
llvm::X86InstrInfo::loadRegFromStackSlot(llvm::MachineBasicBlock&,
llvm::ilist_iterator<llvm::MachineInstr>, unsigned int, int, const
llvm::TargetRegisterClass*, const llvm::TargetRegisterInfo*) const: Assertion
`MF.getFrameInfo()->getObjectSize(FrameIdx) >= RC->getSize() && "Stack slot too
small for load"' failed.
0  clang 0x092d46a8
Stack dump:
0.      Program arguments:
/home/regehr/z/compiler-install/llvm-gcc-r109727-install/bin/clang -cc1 -triple
i386-pc-linux-gnu -S -disable-free -main-file-name small.c -mrelocation-model
static -mdisable-fp-elim -mconstructor-aliases -target-cpu pentium4
-resource-dir
/home/regehr/z/compiler-install/llvm-gcc-r109727-install/lib/clang/2.8 -O1 -w
-ferror-limit 19 -fmessage-length 100 -fgnu-runtime -fdiagnostics-show-option
-fcolor-diagnostics -o /tmp/cc-Qo2EKn.s -x c small.c 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Linear Scan Register Allocator' on function '@func_88'
clang: error: clang frontend command failed due to signal 6 (use -v to see
invocation)
regehr at john-home:~/volatile/bugs/tmp327$ cat small.c
static signed char
foo (signed char si1, signed char si2)
{
  return si1 - si2;
}

static signed char
bar (signed char si1, signed char si2)
{
  return si2 || si1 && si2 ? : si1 + si2;
}

int g_5;
int g_85;

void
func_88 (struct S0 *p_89, unsigned short p_90)
{
  if (func_91 (g_5, 0) &
      bar (p_90,
           safe (safe (g_85, 0) <
                 foo (1L, p_90),
                 0)))
    {
      int *l_104 = &g_85;
    lbl_110:*l_104 = p_90;
    }
}
regehr at john-home:~/volatile/bugs/tmp327$ clang -v
clang version 2.8 (trunk 109727)
Target: i386-pc-linux-gnu
Thread model: posix

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list