Skip to content

Instantly share code, notes, and snippets.

@waterlink
Created March 23, 2015 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save waterlink/d903216aaca5df8ccaa1 to your computer and use it in GitHub Desktop.
Save waterlink/d903216aaca5df8ccaa1 to your computer and use it in GitHub Desktop.
crystal-lang compiler error
; ModuleID = 'Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))'
%String = type { i32, i32, i32, i8 }
%"Array(Int32)" = type { i32, i32, i32, i32* }
%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))" = type { i32, i32, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"**, i32, i32, i1, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* }
%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))" = type { i32, %"(Int:Class | Float:Class)", %"(MySQL::Types::Integer:Class | MySQL::Types::Float:Class)", %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* }
%"(Int:Class | Float:Class)" = type { i32, [1 x i64] }
%"(MySQL::Types::Integer:Class | MySQL::Types::Float:Class)" = type { i32, [1 x i64] }
@symbol_table = external global [23 x %String*]
@"Hash(K, V)::HASH_PRIMES" = external global %"Array(Int32)"*
@str = private constant { i32, i32, i32, [19 x i8] } { i32 1, i32 18, i32 18, [19 x i8] c"Hash table too big\00" }
define %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))::new<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)):Class>:Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"(i32 %self) {
alloca:
%block = alloca i1
%comp = alloca i32
%_ = alloca %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*
br label %entry
entry: ; preds = %alloca
store i1 false, i1* %block
store i32 679, i32* %comp
%0 = call i8* @__crystal_malloc(i32 ptrtoint (%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* getelementptr (%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* null, i32 1) to i32))
%1 = bitcast i8* %0 to %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*
%2 = bitcast %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %1 to i8*
call void @llvm.memset.p0i8.i32(i8* %2, i8 0, i32 ptrtoint (%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* getelementptr (%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* null, i32 1) to i32), i32 4, i1 false)
%3 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %1, i32 0, i32 0
store i32 158, i32* %3
store %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %1, %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %_
%4 = load %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %_
%5 = call i1 @"*GC::add_finalizer<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))>:Nil"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %4)
%6 = load %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %_
%7 = load i1* %block
%8 = load i32* %comp
%9 = call i1 @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)#initialize<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Nil, Hash(K, V)::StandardComparator:Class>:Nil"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %6, i1 %7, i32 %8)
%10 = load %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %_
ret %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %10
}
declare i8* @__crystal_malloc(i32)
; Function Attrs: nounwind
declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) #0
declare i1 @"*GC::add_finalizer<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))>:Nil"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*)
define i1 @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)#initialize<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Nil, Hash(K, V)::StandardComparator:Class>:Nil"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i1 %block, i32 %comp) {
entry:
%0 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 1
store i32 %comp, i32* %0
%1 = call %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** @"*Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)::malloc<Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?):Class, Int32>:Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)"(i32 594, i32 11)
%2 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 2
store %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %1, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*** %2
%3 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 3
store i32 11, i32* %3
%4 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 4
store i32 0, i32* %4
%5 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 5
store i1 %block, i1* %5
ret i1 %block
}
declare %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** @"*Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)::malloc<Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?):Class, Int32>:Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)"(i32, i32)
define i32 @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)#[]=<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Int:Class, MySQL::Types::Integer:Class>:MySQL::Types::Integer:Class"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 %key, i32 %value) {
alloca:
%index = alloca i32
%entry1 = alloca %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*
%last = alloca %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*
entry: ; No predecessors!
%0 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 4
%1 = load i32* %0
%2 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 3
%3 = load i32* %2
%4 = mul i32 5, %3
%5 = icmp sgt i32 %1, %4
br i1 %5, label %then, label %else
then: ; preds = %entry
else: ; preds = %entry
}
define i1 @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)#rehash<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))>:Nil"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self) {
alloca:
%new_size = alloca i32
%entry1 = alloca %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*
%index = alloca i32
%i = alloca i32
%i2 = alloca i32
%0 = alloca %"(Int:Class | Float:Class)"
entry: ; No predecessors!
%1 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 4
%2 = load i32* %1
%3 = call i32 @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)#calculate_new_size<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Int32>:Int32"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 %2)
store i32 %3, i32* %new_size
%4 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 2
%5 = load %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*** %4
%6 = load i32* %new_size
%7 = call %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** @"*Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)@Pointer(T)#realloc<Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?), Int32>:Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %5, i32 %6)
%8 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 2
store %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %7, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*** %8
%9 = load i32* %new_size
%10 = xor i32 %9, %9
store i32 %10, i32* %i2
br label %while
while: ; preds = %body, %entry
%11 = load i32* %i2
%12 = icmp slt i32 %11, %9
br i1 %12, label %body, label %exit
body: ; preds = %while
%13 = load i32* %i2
store i32 %13, i32* %i
%14 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 2
%15 = load %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*** %14
%16 = load i32* %i
%17 = call i1 @"*Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)@Pointer(T)#[]=<Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?), Int32, Nil>:Nil"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %15, i32 %16, i1 false)
%18 = load i32* %i2
%19 = add i32 %18, 1
store i32 %19, i32* %i2
br label %while
exit: ; preds = %while
%20 = load i32* %new_size
%21 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 3
store i32 %20, i32* %21
%22 = getelementptr inbounds %"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 0, i32 6
%23 = load %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %22
store %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %23, %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %entry1
br label %while3
while3: ; preds = %exit
%24 = load %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %entry1
%25 = ptrtoint %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %24 to i32
%26 = icmp ne i32 %25, 0
br i1 %26, label %body4, label %exit5
body4: ; preds = %while3
%27 = load %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %entry1
%28 = call i1 @"*Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)::Entry(K, V)#next=<Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Nil>:Nil"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %27, i1 false)
%29 = load %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** %entry1
%30 = call %"(Int:Class | Float:Class)" @"*Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)::Entry(K, V)#key<Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))>:(Int:Class | Float:Class)"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %29)
store %"(Int:Class | Float:Class)" %30, %"(Int:Class | Float:Class)"* %0
exit5: ; preds = %while3
}
define i32 @"*Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)#calculate_new_size<Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Int32>:Int32"(%"Hash((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"* %self, i32 %size) {
alloca:
%new_size = alloca i32
%hash_size = alloca i32
%i = alloca i32
%i1 = alloca i32
br label %entry
entry: ; preds = %alloca
store i32 8, i32* %new_size
%0 = load %"Array(Int32)"** @"Hash(K, V)::HASH_PRIMES"
store i32 0, i32* %i1
br label %while
while: ; preds = %else, %entry
%1 = load i32* %i1
%2 = call i32 @"*Array(Int32)@Array(T)#length<Array(Int32)>:Int32"(%"Array(Int32)"* %0)
%3 = icmp slt i32 %1, %2
br i1 %3, label %body, label %exit
body: ; preds = %while
%4 = load i32* %i1
store i32 %4, i32* %i
%5 = getelementptr inbounds %"Array(Int32)"* %0, i32 0, i32 3
%6 = load i32** %5
%7 = load i32* %i
%8 = call i32 @"*Pointer(Int32)@Pointer(T)#[]<Pointer(Int32), Int32>:Int32"(i32* %6, i32 %7)
store i32 %8, i32* %hash_size
%9 = load i32* %new_size
%10 = icmp sgt i32 %9, %size
br i1 %10, label %then, label %else
exit: ; preds = %while
call void @"*raise<String>:NoReturn"(%String* bitcast ({ i32, i32, i32, [19 x i8] }* @str to %String*))
unreachable
then: ; preds = %body
%11 = load i32* %hash_size
ret i32 %11
else: ; preds = %body
%12 = load i32* %new_size
%13 = shl i32 %12, 1
store i32 %13, i32* %new_size
%14 = load i32* %i1
%15 = add i32 %14, 1
store i32 %15, i32* %i1
br label %while
}
declare i32 @"*Array(Int32)@Array(T)#length<Array(Int32)>:Int32"(%"Array(Int32)"*)
declare i32 @"*Pointer(Int32)@Pointer(T)#[]<Pointer(Int32), Int32>:Int32"(i32*, i32)
declare void @"*raise<String>:NoReturn"(%String*)
declare %"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"** @"*Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)@Pointer(T)#realloc<Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?), Int32>:Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"**, i32)
declare i1 @"*Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?)@Pointer(T)#[]=<Pointer(Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))?), Int32, Nil>:Nil"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"**, i32, i1)
declare i1 @"*Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)::Entry(K, V)#next=<Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class)), Nil>:Nil"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*, i1)
declare %"(Int:Class | Float:Class)" @"*Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))@Hash(K, V)::Entry(K, V)#key<Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))>:(Int:Class | Float:Class)"(%"Hash(K, V)::Entry((Int:Class | Float:Class), (MySQL::Types::Integer:Class | MySQL::Types::Float:Class))"*)
attributes #0 = { nounwind }
Nil assertion failed
*raise<String>:NoReturn +70 [4476877398]
*Nil#not_nil!<Nil>:NoReturn +13 [4476919085]
*Crystal::CodeGenVisitor#codegen_fun<Crystal::CodeGenVisitor, String, Crystal::Def+, Crystal::Type+, Bool, LLVM::Module, Bool, Bool>:LLVM::Function +5718 [4479559478]
*Crystal::CodeGenVisitor#target_def_fun<Crystal::CodeGenVisitor, Crystal::Def+, Crystal::Type+>:LLVM::Function +2414 [4479551006]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Call>:(Bool | Nil) +13142 [4479513030]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +45 [4479471485]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +6918 [4479478358]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Expressions>:Bool +1908 [4479616612]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +2401 [4479473841]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +8809 [4479480249]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Expressions>:Bool +1908 [4479616612]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +2401 [4479473841]
*Crystal::CodeGenVisitor#codegen_fun<Crystal::CodeGenVisitor, String, Crystal::Def+, Crystal::Type+, Bool, LLVM::Module, Bool, Bool>:LLVM::Function +5339 [4479559099]
*Crystal::CodeGenVisitor#target_def_fun<Crystal::CodeGenVisitor, Crystal::Def+, Crystal::Type+>:LLVM::Function +2414 [4479551006]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Call>:(Bool | Nil) +13142 [4479513030]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +45 [4479471485]
*Crystal::CodeGenVisitor#codegen_if_branch<Crystal::CodeGenVisitor, Crystal::CodeGenVisitor::Phi, Crystal::ASTNode+, LLVM::BasicBlock, Bool>:(LLVM::Value | Nil) +52 [4479621892]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +8657 [4479480097]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Expressions>:Bool +1908 [4479616612]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +2401 [4479473841]
*Crystal::CodeGenVisitor#codegen_fun<Crystal::CodeGenVisitor, String, Crystal::Def+, Crystal::Type+, Bool, LLVM::Module, Bool, Bool>:LLVM::Function +5339 [4479559099]
*Crystal::CodeGenVisitor#target_def_fun<Crystal::CodeGenVisitor, Crystal::Def+, Crystal::Type+>:LLVM::Function +2414 [4479551006]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Call>:(Bool | Nil) +13142 [4479513030]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +45 [4479471485]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Expressions>:Bool +1908 [4479616612]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +2401 [4479473841]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +2849 [4479474289]
*Crystal::CodeGenVisitor#initialize_const<Crystal::CodeGenVisitor, Crystal::Const, String>:(LLVM::Value | Nil) +704 [4479617728]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +3386 [4479474826]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Expressions>:Bool +1908 [4479616612]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +2401 [4479473841]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +3735 [4479475175]
*Crystal::ASTNode+@Crystal::ASTNode#accept<Crystal::ASTNode+, Crystal::CodeGenVisitor>:Nil +3735 [4479475175]
*Crystal::CodeGenVisitor#visit<Crystal::CodeGenVisitor, Crystal::Expressions>:Bool +1908 [4479616612]
*Crystal::Program#build<Crystal::Program, Crystal::Expressions, (Bool | Nil | String), Bool, LLVM::Module>:Hash(String, LLVM::Module) +113 [4479367041]
*Crystal::Compiler#build<Crystal::Compiler, Crystal::Program, Crystal::Expressions, Array(Crystal::Compiler::Source), String>:(Bool | Nil) +3444 [4479354676]
*Crystal::Compiler#compile<Crystal::Compiler, Array(Crystal::Compiler::Source), String>:Crystal::Compiler::Result +4800 [4478714784]
*Crystal::Command::run<Array(String)>:(Crystal::Compiler::Result | File | Bool | CFileIO | Nil) +15226 [4476894426]
__crystal_main +10046 [4476875326]
main +48 [4476877952]
Error: you've found a bug in the Crystal compiler. Please open an issue: https://github.com/manastech/crystal/issues
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment