[LLVMbugs] [Bug 12929] New: Casting.h:194: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed May 23 11:15:45 PDT 2012


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

             Bug #: 12929
           Summary: Casting.h:194: Assertion `isa<X>(Val) && "cast<Ty>()
                    argument of incompatible type!"' failed
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: merkil at savhon.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


$ cat file.c
unsigned char g;

void func(void)
{
    unsigned char a = 0;

    for(;;)
    {
        unsigned char i, v;

        g = 0;

        for(i = 0; i < 10; i++)
            v *= a++;
    }
}

$ ~/clang/build/Release+Asserts/bin/clang -O3 file.c
clang: /home/merkil/clang/llvm/include/llvm/Support/Casting.h:194: typename
llvm::cast_retty<To, From>::ret_type llvm::cast(const Y&) [with X =
llvm::SCEVAddRecExpr, Y = const llvm::SCEV*, typename llvm::cast_retty<To,
From>::ret_type = const llvm::SCEVAddRecExpr*]: Assertion `isa<X>(Val) &&
"cast<Ty>() argument of incompatible type!"' failed.
0  clang           0x0000000001ed2dff
1  clang           0x0000000001ed32e9
2  libpthread.so.0 0x00002b140f650030
3  libc.so.6       0x00002b1410234475 gsignal + 53
4  libc.so.6       0x00002b14102376f0 abort + 384
5  libc.so.6       0x00002b141022d621 __assert_fail + 241
6  clang           0x000000000070c9ae
7  clang           0x0000000001d1e4b2
llvm::ScalarEvolution::getMulExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&,
llvm::SCEV::NoWrapFlags) + 4962
8  clang           0x0000000001d1e303
llvm::ScalarEvolution::getMulExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&,
llvm::SCEV::NoWrapFlags) + 4531
9  clang           0x0000000001d14b32
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2594
10 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
11 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
12 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
13 clang           0x0000000001d22570
llvm::ScalarEvolution::createNodeForPHI(llvm::PHINode*) + 1296
14 clang           0x0000000001d1520b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 4347
15 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
16 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
17 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
18 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
19 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
20 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
21 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
22 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
23 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
24 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
25 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
26 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
27 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
28 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
29 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
30 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
31 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
32 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
33 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
34 clang           0x0000000001d14a9b
llvm::ScalarEvolution::createSCEV(llvm::Value*) + 2443
35 clang           0x0000000001d1551b
llvm::ScalarEvolution::getSCEV(llvm::Value*) + 267
36 clang           0x0000000001c2352e llvm::simplifyUsersOfIV(llvm::PHINode*,
llvm::ScalarEvolution*, llvm::LPPassManager*,
llvm::SmallVectorImpl<llvm::WeakVH>&, llvm::IVVisitor*) + 5582
37 clang           0x0000000001acc4fb
38 clang           0x0000000001ad15cb
39 clang           0x0000000001cb1aac
llvm::LPPassManager::runOnFunction(llvm::Function&) + 1084
40 clang           0x0000000001e6965f
llvm::FPPassManager::runOnFunction(llvm::Function&) + 591
41 clang           0x0000000001c2b938
42 clang           0x0000000001c2e5a6
43 clang           0x0000000001e69374
llvm::MPPassManager::runOnModule(llvm::Module&) + 532
44 clang           0x0000000001e6a90b llvm::PassManagerImpl::run(llvm::Module&)
+ 171
45 clang           0x000000000088f213
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*,
clang::BackendAction, llvm::raw_ostream*) + 1955
46 clang           0x000000000088d18d
47 clang           0x00000000009e236f clang::ParseAST(clang::Sema&, bool, bool)
+ 447
48 clang           0x00000000007493b4
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 340
49 clang           0x000000000073060e
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1198
50 clang           0x0000000000728158 cc1_main(char const**, char const**, char
const*, void*) + 936
51 clang           0x000000000071214f main + 719
52 libc.so.6       0x00002b1410220ead __libc_start_main + 253
53 clang           0x0000000000725d79
Stack dump:
0.    Program arguments: /home/merkil/clang/build/Release+Asserts/bin/clang
-cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name
file.c -mrelocation-model static -fmath-errno -masm-verbose
-mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version
2.22 -momit-leaf-frame-pointer -resource-dir
/home/merkil/clang/build/Release+Asserts/bin/../lib/clang/3.2
-fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem
/usr/local/include -internal-isystem
/home/merkil/clang/build/Release+Asserts/bin/../lib/clang/3.2/include
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /include -internal-externc-isystem /usr/include -O2
-w -fdebug-compilation-dir /home/merkil/misc/creduce/c_reduce -ferror-limit 19
-fmessage-length 0 -mstackrealign -fgnu-runtime -fobjc-runtime-has-arc
-fobjc-runtime-has-weak -fobjc-fragile-abi -fdiagnostics-show-option -o
/tmp/file-g59vXF.o -x c file.c 
1.    <eof> parser at end of file
2.    Per-module optimization passes
3.    Running pass 'CallGraph Pass Manager' on module 'file.c'.
4.    Running pass 'Loop Pass Manager' on function '@func'
5.    Running pass 'Induction Variable Simplification' on basic block
'%for.cond'
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang: note: diagnostic msg: Please submit a bug report to
http://llvm.org/bugs/ and include command line arguments and all diagnostic
information.
clang: note: diagnostic msg: Preprocessed source(s) and associated run
script(s) are located at:
clang: note: diagnostic msg: /tmp/file-T3LL1a.i
clang: note: diagnostic msg: /tmp/file-T3LL1a.sh

Fails at -O2 and higher on clang as of r157331 (works with 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