[llvm-bugs] [Bug 24955] New: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Sep 27 16:37:31 PDT 2015


https://llvm.org/bugs/show_bug.cgi?id=24955

            Bug ID: 24955
           Summary: Assertion `isa<X>(Val) && "cast<Ty>() argument of
                    incompatible type!"' failed.
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: rich at pennware.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 14943
  --> https://llvm.org/bugs/attachment.cgi?id=14943&action=edit
This file contains a shell script an the failing C code.

I get an error using a recent (r248677) TOT.
I was originally compiling the libedit library for several targets (ARM, Mips,
etc.) It seems to fail for all architectures. I have simplified the error
causing code using clang for x86_64 (test case attached).
Here is the error:

lang: /home/rich/llvm/include/llvm/Support/Casting.h:237: typename
llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X = llvm::IntegerType; Y
= llvm::Type; typename llvm::cast_retty<X, Y*>::ret_type = llvm::IntegerType*]:
Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
0  clang           0x0000000002fe84f5
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  clang           0x0000000002fe75d6 llvm::sys::RunSignalHandlers() + 54
2  clang           0x0000000002fe77f4
3  libpthread.so.0 0x00000037bf6100d0
4  libc.so.6       0x00000037bea348d7 gsignal + 55
5  libc.so.6       0x00000037bea3653a abort + 362
6  libc.so.6       0x00000037bea2d47d
7  libc.so.6       0x00000037bea2d532
8  clang           0x0000000000e5dd35
9  clang           0x0000000002d08af2
llvm::ScalarEvolution::isImpliedCondOperandsViaNoOverflow(llvm::CmpInst::Predicate,
llvm::SCEV const*, llvm::SCEV const*, llvm::SCEV const*, llvm::SCEV const*) +
322
10 clang           0x0000000002d08c86
llvm::ScalarEvolution::isImpliedCondOperands(llvm::CmpInst::Predicate,
llvm::SCEV const*, llvm::SCEV const*, llvm::SCEV const*, llvm::SCEV const*) +
86
11 clang           0x0000000002d08fc0
llvm::ScalarEvolution::isImpliedCond(llvm::CmpInst::Predicate, llvm::SCEV
const*, llvm::SCEV const*, llvm::CmpInst::Predicate, llvm::SCEV const*,
llvm::SCEV const*) + 720
12 clang           0x0000000002d06382
llvm::ScalarEvolution::isImpliedCond(llvm::CmpInst::Predicate, llvm::SCEV
const*, llvm::SCEV const*, llvm::Value*, bool) + 450
13 clang           0x0000000002d06663
llvm::ScalarEvolution::isLoopEntryGuardedByCond(llvm::Loop const*,
llvm::CmpInst::Predicate, llvm::SCEV const*, llvm::SCEV const*) + 211
14 clang           0x0000000002d09772
15 clang           0x0000000002d09cb8
llvm::ScalarEvolution::HowManyLessThans(llvm::SCEV const*, llvm::SCEV const*,
llvm::Loop const*, bool, bool) + 72
16 clang           0x0000000002cf685e
llvm::ScalarEvolution::ComputeExitLimitFromICmp(llvm::Loop const*,
llvm::ICmpInst*, llvm::BasicBlock*, llvm::BasicBlock*, bool) + 862
17 clang           0x0000000002cf6aa9
llvm::ScalarEvolution::ComputeExitLimitFromCond(llvm::Loop const*,
llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*, bool) + 233
18 clang           0x0000000002cf726c
llvm::ScalarEvolution::ComputeExitLimit(llvm::Loop const*, llvm::BasicBlock*) +
636
19 clang           0x0000000002cf7472
llvm::ScalarEvolution::ComputeBackedgeTakenCount(llvm::Loop const*) + 402
20 clang           0x0000000002cf7868
llvm::ScalarEvolution::getBackedgeTakenInfo(llvm::Loop const*) + 616
21 clang           0x0000000002cf80a9
llvm::ScalarEvolution::getBackedgeTakenCount(llvm::Loop const*) + 9
22 clang           0x0000000002974e78
23 clang           0x0000000002cab24b
llvm::LPPassManager::runOnFunction(llvm::Function&) + 1899
24 clang           0x0000000002f5af23
llvm::FPPassManager::runOnFunction(llvm::Function&) + 643
25 clang           0x0000000002c1ae57
26 clang           0x0000000002f5b668
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 872
27 clang           0x0000000000c76441
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&,
llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::raw_pwrite_stream*)
+ 3345
28 clang           0x0000000000c55c7d
29 clang           0x0000000000e8318d clang::ParseAST(clang::Sema&, bool, bool)
+ 845
30 clang           0x0000000000c568eb clang::CodeGenAction::ExecuteAction() +
59
31 clang           0x0000000000a71906 clang::FrontendAction::Execute() + 294
32 clang           0x0000000000a4ab29
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 361
33 clang           0x0000000000a2ed03
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2131
34 clang           0x0000000000a26008 cc1_main(llvm::ArrayRef<char const*>,
char const*, void*) + 3224
35 clang           0x00000000009e7098 main + 5896
36 libc.so.6       0x00000037bea1ffe0 __libc_start_main + 240
37 clang           0x0000000000a24aa7
Stack dump:
0.      Program arguments: /home/rich/llvm-dir/bin/clang -cc1 -emit-obj
-disable-free -main-file-name refresh.c -mrelocation-model static
-mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases
-target-cpu x86-64 -target-linker-version 2.24 -momit-leaf-frame-pointer -g
-dwarf-column-info -sys-header-deps -D HAVE_CONFIG_H -O2
-Wno-unneeded-internal-declaration -Wno-cast-align
-Wno-incompatible-pointer-types -Wno-string-plus-int -Wno-pointer-sign
-Wno-array-bounds -Wno-dangling-else -Wno-int-to-pointer-cast -ferror-limit 19
-fmessage-length 81 -fobjc-runtime=gcc -fdiagnostics-show-option
-fcolor-diagnostics -vectorize-loops -vectorize-slp -x c refresh-5c84f0.c 
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'CallGraph Pass Manager' on module 'refresh-5c84f0.c'.
4.      Running pass 'Loop Pass Manager' on function '@re_update_line'
5.      Running pass 'Induction Variable Simplification' on basic block
'%land.rhs.16'
refresh-5c84f0.sh: line 4: 29452 Aborted                 (core dumped)
"/home/rich/llvm-dir/bin/clang" "-cc1" "-emit-obj" "-disable-free"
"-main-file-name" "refresh.c" "-mrelocation-model" "static" "-mthread-model"
"posix" "-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-target-cpu"
"x86-64" "-target-linker-version" "2.24" "-momit-leaf-frame-pointer" "-g"
"-dwarf-column-info" "-sys-header-deps" "-D" "HAVE_CONFIG_H" "-O2"
"-Wno-unneeded-internal-declaration" "-Wno-cast-align"
"-Wno-incompatible-pointer-types" "-Wno-string-plus-int" "-Wno-pointer-sign"
"-Wno-array-bounds" "-Wno-dangling-else" "-Wno-int-to-pointer-cast"
"-ferror-limit" "19" "-fmessage-length" "81" "-fobjc-runtime=gcc"
"-fdiagnostics-show-option" "-fcolor-diagnostics" "-vectorize-loops"
"-vectorize-slp" "-x" "c" "refresh-5c84f0.c"
[~] dev%

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150927/24d7ae9d/attachment-0001.html>


More information about the llvm-bugs mailing list