[LLVMbugs] [Bug 5269] New: ice: Shouldn't be alive across any blocks!

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Oct 21 09:01:34 PDT 2009


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

           Summary: ice: Shouldn't be alive across any blocks!
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: regehr at cs.utah.edu
                CC: llvmbugs at cs.uiuc.edu


Seen on Ubuntu Jaunty on x86.  Sorry for the gross testcase...

regehr at john-home:~/volatile/tmp209$ clang -O3 small.c -w
clang-cc: LiveIntervalAnalysis.cpp:722: void
llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*,
llvm::ilist_iterator<llvm::MachineInstr>, llvm::LiveIndex,
llvm::MachineOperand&, unsigned int, llvm::LiveInterval&): Assertion
`vi.AliveBlocks.empty() && "Shouldn't be alive across any blocks!"' failed.
0   clang-cc 0x090832e8
Stack dump:
0.      Program arguments:
/home/regehr/z/tmp/llvm-gcc-r84737-install/bin/../libexec/clang-cc -triple
i386-pc-linux-gnu -S -disable-free -main-file-name small.c --relocation-model
static --disable-fp-elim --unwind-tables=0 --mcpu=pentium4 --fmath-errno=1 -O3
-w -fexceptions=0 -fdiagnostics-show-option -o /tmp/cc-co651y.s -x c small.c 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Live Interval Analysis' on function '@uint323'
clang: error: compiler command failed due to signal 6 (use -v to see
invocation)

regehr at john-home:~/volatile/tmp209$ clang -v

clang version 1.1 (trunk 84737)
Target: i386-pc-linux-gnu
Thread model: posix

regehr at john-home:~/volatile/tmp209$ cat small.c

extern void foo (void) __attribute__ ((__noreturn__));

static unsigned char bar (long long _si1, unsigned char _si2)
{
  return _si2 << -_si2 ? 0 : -1;
}

int g_5;
volatile unsigned char g_37;
int *g_63;
unsigned char g_68;
unsigned char g_70;
unsigned char g_78;

int *func_49 (int * p_50);
int *func_52 (long long p_53, int ** p_54, unsigned char p_55, unsigned p_56);
int func_60 (char p_61, int32p_62);

unsigned char * func_3 (int * p_4)
{
  unsigned char *l_7 = &g_5;
  return l_7;
}

unsigned char func_26 (unsigned p_27, unsigned char * p_28, uint8p_29)
{
  return p_27;
}

void uint323 (short p_44, unsigned char * uint16p_46)
{
  unsigned char l;
  l = func_26 (p_44, func_49 (func_49 (func_52)), 0);
}

int *func_49 (int * p_50)
{
  unsigned char *l_58 = &g_5;
  unsigned char *l_67 = &g_5;
  for (0; g_37; 0)
    {
      func_60 (g_5, *g_63);
      unsigned char l_71;
      l_71 = func_26 (g_70, l_67, 1);
      1 == &g_5 ? 0 : foo ();
      if (*g_63
          || bar (&g_5, !func_26 (g_68, l_67, 0)
                                        || *g_63 && *g_63))
        return l_58;
      1 == &g_5 ? 0 : foo ();
      g_78 = (p_50 == 0 ^ 1 && l_71) < *g_63;
    }
  return 0;
}

int func_60 (char p_61, int32p_62)
{
  g_63 = func_3 (0);
}


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