[LLVMbugs] [Bug 7771] New: Assertion `(unsigned)FI-LowSpillSlot < SpillSlotToUsesMap.size() && "Invalid spill slot"' failed.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Jul 31 13:29:13 PDT 2010


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

           Summary: Assertion `(unsigned)FI-LowSpillSlot <
                    SpillSlotToUsesMap.size() && "Invalid spill slot"'
                    failed.
           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, chenyang at cs.utah.edu


[regehr at bethe tmp606]$ clang -O2 -m32 -fomit-frame-pointer -c small.c -w
clang: VirtRegMap.cpp:180: void llvm::VirtRegMap::addSpillSlotUse(int,
llvm::MachineInstr*): Assertion `(unsigned)FI-LowSpillSlot <
SpillSlotToUsesMap.size() && "Invalid spill slot"' failed.
0  clang           0x00000000015f9d1f
1  clang           0x00000000015fbdb2
2  libpthread.so.0 0x00007fbd0741a190
3  libc.so.6       0x00007fbd0671f4b5 gsignal + 53
4  libc.so.6       0x00007fbd06722f50 abort + 384
5  libc.so.6       0x00007fbd06718481 __assert_fail + 241
6  clang           0x00000000012ba0f4 llvm::VirtRegMap::addSpillSlotUse(int,
llvm::MachineInstr*) + 180
7  clang           0x00000000012c57e2
8  clang           0x00000000012c6183
9  clang           0x00000000012cd337
10 clang           0x00000000012589f1
11 clang           0x000000000154ce0d
llvm::FPPassManager::runOnFunction(llvm::Function&) + 637
12 clang           0x000000000154cfeb
llvm::FunctionPassManagerImpl::run(llvm::Function&) + 155
13 clang           0x000000000154d2dc
llvm::FunctionPassManager::run(llvm::Function&) + 220
14 clang           0x00000000007afede
clang::EmitBackendOutput(clang::Diagnostic&, clang::CodeGenOptions const&,
clang::TargetOptions const&, llvm::Module*, clang::BackendAction,
llvm::raw_ostream*) + 1806
15 clang           0x00000000007abf7b
16 clang           0x00000000008c289f clang::ParseAST(clang::Preprocessor&,
clang::ASTConsumer*, clang::ASTContext&, bool, bool,
clang::CodeCompleteConsumer*) + 335
17 clang           0x00000000007acef4 clang::CodeGenAction::ExecuteAction() +
68
18 clang           0x00000000006c9855
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 357
19 clang           0x00000000006a7c3b cc1_main(char const**, char const**, char
const*, void*) + 2651
20 clang           0x00000000006ae407 main + 3543
21 libc.so.6       0x00007fbd0670aabd __libc_start_main + 253
22 clang           0x00000000006a53a9
Stack dump:
0.      Program arguments:
/uusoc/exports/scratch/regehr/z/compiler-install/llvm-gcc-r109940-install/bin/clang
-cc1 -triple i386-unknown-linux-gnu -S -disable-free -main-file-name small.c
-mrelocation-model static -mconstructor-aliases -target-cpu pentium4
-resource-dir
/uusoc/exports/scratch/regehr/z/compiler-install/llvm-gcc-r109940-install/lib/clang/2.8
-O2 -w -ferror-limit 19 -fmessage-length 95 -fgnu-runtime
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-kvKvCO.s -x c small.c 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Linear Scan Register Allocator' on function '@int641'
clang: error: clang frontend command failed due to signal 6 (use -v to see
invocation)

[regehr at bethe tmp606]$ clang -v

clang version 2.8 (trunk 109940)
Target: x86_64-unknown-linux-gnu
Thread model: posix

[regehr at bethe tmp606]$ cat small.c

static signed char
foo (signed char si1, unsigned char si2)
{
  return si1 + si2;
}

static signed char
bar (signed char left, int right)
{
  return left || right || right || left >> right ? left : left << right;
}

static short
baz (short si1, short si2)
{
  return si1 + si2;
}

static unsigned char
bux (unsigned char ui1, unsigned char ui2)
{
  return ui1 - ui2;
}

static unsigned short
buzz (unsigned short ui1, unsigned char ui2)
{
  return ui1 - ui2;
}

static unsigned long long
biz (unsigned long long ui1, unsigned char ui2)
{
  return ui2 ? ui1 : (ui1 / ui2);
}

short g_26[2] = {
  0x12A7B09FL
};

unsigned char *g_25 = &g_26[0];
int **volatile g_29 = &g_25;
signed char g_103;
const short *g_106 = &g_103;
const unsigned char **g = &g_106;
unsigned char g_213;
short *volatile g_230 = &g_213;

void
int641 (void)
{
  short **l_239 = &g_25;
  int *l_245 = &g_26[1];
  if (biz
      (**l_239
       && buzz (*l_245, 0),
       g_103 <
       (foo
        (baz (*l_245, **g_29),
         g_26[0]) <= bar (bux (**l_239, *g_106), **l_239))))
    for (0; 1; g += 1)
      *g_230 ^= safe (*l_245, *g_106);
}

-- 
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