[LLVMbugs] [Bug 6034] New: clang ice: Assertion `SS == (SwitchStmt*)Switch.get() && " switch stack missing push/pop!"' failed.

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Jan 13 15:29:54 PST 2010


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

           Summary: clang ice: Assertion `SS == (SwitchStmt*)Switch.get() &&
                    "switch stack missing push/pop!"' failed.
           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


Code is invalid for clang, but valid for gcc.

regehr at john-home:~/volatile/bugs/tmp258$ clang small.c
small.c:6:30: error: global register variables are not supported
register struct CPUPPCState *env __asm__ ("ebp");
                             ^
clang: SemaStmt.cpp:491: virtual
clang::ASTOwningResult<&clang::ActionBase::DeleteStmt>
clang::Sema::ActOnFinishSwitchStmt(clang::SourceLocation,
clang::ASTOwningResult<&clang::ActionBase::DeleteStmt>,
clang::ASTOwningResult<&clang::ActionBase::DeleteStmt>): Assertion `SS ==
(SwitchStmt*)Switch.get() && "switch stack missing push/pop!"' failed.
0  clang 0x090ee918
Stack dump:
0.      Program arguments: /home/regehr/z/tmp/llvm-gcc-r93238-install/bin/clang
-cc1 -triple i386-pc-linux-gnu -S -disable-free -main-file-name small.c
-mrelocation-model static -mdisable-fp-elim -target-cpu pentium4 -resource-dir
/home/regehr/z/tmp/llvm-gcc-r93238-install/lib/clang/1.1 -fmessage-length 80
-fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-oIVWaL.s
-x c small.c 
1.      small.c:14:1: current parser token '}'
2.      small.c:9:1: parsing function body 'helpersetbit'
3.      small.c:9:1: in compound statement ('{}')
clang: error: compiler command failed due to signal 6 (use -v to see
invocation)

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

typedef unsigned int uint32_t;
struct CPUPPCState
{
  uint32_t fpscr;
};
register struct CPUPPCState *env __asm__ ("ebp");
void
helpersetbit (uint32_t bit)
{
  switch (bit)
    switch (env->fpscr)
      {
      }
}

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

clang version 1.1 (trunk 93238)
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