[LLVMbugs] [Bug 6146] New: Assertion failed: ((!From->hasAnyUseOfValue(i) || From-> getValueType(i) == To->getValueType(i)) && " Cannot use this version of ReplaceAllUsesWith!"), function ReplaceAllUsesWith, file SelectionDAG.cpp, line 4952.

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Jan 26 02:50:24 PST 2010


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

           Summary: Assertion failed: ((!From->hasAnyUseOfValue(i) || From-
                    >getValueType(i) == To->getValueType(i)) && "Cannot use
                    this version of ReplaceAllUsesWith!"), function
                    ReplaceAllUsesWith, file SelectionDAG.cpp, line 4952.
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Backend: X86
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: rdivacky at freebsd.org
                CC: llvmbugs at cs.uiuc.edu


this is a pretty recent regression at most 1 week old

pes delta$ cat dmu_traverse.c 
typedef struct vm_page *vm_page_t;
vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg)
{
} blkptr_t;
typedef struct zbookmark {
 unsigned long zb_objset;
 long zb_level;
} zbookmark_t;
typedef struct zstream {
} dnode_phys_t;
typedef struct traverse_blk_cache {
} traverse_blk_cache_t;
struct traverse_handle {
};
compare_bookmark(zbookmark_t *szb, zbookmark_t *ezb, dnode_phys_t *dnp,
    int advance)
{
 int bias = (advance & 0x01) ? 0 : -1;
 int slevel, elevel, wshift;
 if (szb->zb_objset + bias < ezb->zb_objset + bias)
 slevel = szb->zb_level;
 elevel = ezb->zb_level;
  return ((slevel ^ bias) - (elevel ^ bias));
}

pes delta$ clang -O2 dmu_traverse.c
dmu_traverse.c:2:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg)
^
dmu_traverse.c:4:1: warning: control reaches end of non-void function
[-Wreturn-type]
} blkptr_t;
^
dmu_traverse.c:4:3: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
} blkptr_t;
  ^
dmu_traverse.c:15:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
compare_bookmark(zbookmark_t *szb, zbookmark_t *ezb, dnode_phys_t *dnp,
^
Assertion failed: ((!From->hasAnyUseOfValue(i) || From->getValueType(i) ==
To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"),
function ReplaceAllUsesWith, file SelectionDAG.cpp, line 4952.
Stack dump:
0.      Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-unknown-freebsd8.0 -S -disable-free -main-file-name dmu_traverse.c
-mrelocation-model static -mdisable-fp-elim -munwind-tables -target-cpu x86-64
-resource-dir /usr/local/lib/clang/1.1 -O2 -fmessage-length 115 -fgnu-runtime
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-2sPbT9.s -x c
dmu_traverse.c 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'X86 DAG->DAG Instruction Selection' on function
'@compare_bookmark'
clang: error: compiler command failed due to signal 6 (use -v to see
invocation)


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