]> git.lizzy.rs Git - rust.git/commit
rustllvm: Add LLVMRustArrayType
authorklutzy <klutzytheklutzy@gmail.com>
Sat, 10 May 2014 08:30:55 +0000 (17:30 +0900)
committerAlex Crichton <alex@alexcrichton.com>
Wed, 14 May 2014 00:24:08 +0000 (17:24 -0700)
commit9f7caed2024268f6de16f99b6696d191f3ca3228
tree19345dd5d3980348cc53e87b7f2a06af0f4ed768
parent6878039c122211f227d6c42b7f08282629ceb6c4
rustllvm: Add LLVMRustArrayType

LLVM internally uses `uint64_t` for array size, but the corresponding
C API (`LLVMArrayType`) uses `unsigned int` so ths value is truncated.
Therefore rustc generates wrong type for fixed-sized large vector e.g.
`[0 x i8]` for `[0u8, ..(1 << 32)]`.

This patch adds `LLVMRustArrayType` function for `uint64_t` support.
src/librustc/lib/llvm.rs
src/librustc/middle/trans/type_.rs
src/rustllvm/RustWrapper.cpp
src/test/run-pass/vec-fixed-length.rs