Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix LLVM assertion failure on VecElement of aggregate #17292

Merged
merged 1 commit into from
Jul 6, 2016
Merged

Conversation

JeffBezanson
Copy link
Member

I encountered this while rebasing #16622:

julia> VecElement((1,2))
julia: /home/jeff/src/julia-master/julia/deps/srccache/llvm-3.7.1/lib/IR/Instructions.cpp:1521: void llvm::InsertValueInst::init(llvm::Value*, llvm::Value*, llvm::ArrayRef<unsigned int>, const llvm::Twine&): Assertion `ExtractValueInst::getIndexedType(Agg->getType(), Idxs) == Val->getType() && "Inserted value must match indexed type!"' failed.

Now, perhaps one is not supposed to make a VecElement containing a struct-like type, but where this actually arose was during jl_compile_specializations, which decided it needed to specialize the VecElement constructor for the disturbing type VecElement{Base.##60#61{Int64, Int64}}, which appears to be a VecElement of a closure. How that type arose is a future research question...

@JeffBezanson JeffBezanson added the compiler:codegen Generation of LLVM IR and native code label Jul 6, 2016
@vtjnash vtjnash merged commit 853317d into master Jul 6, 2016
@vtjnash vtjnash deleted the jb/vecstruct branch July 6, 2016 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:codegen Generation of LLVM IR and native code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants