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

ICE: translating unsupported cast (*const DST -> uint) #17167

Closed
arielb1 opened this issue Sep 11, 2014 · 2 comments · Fixed by #24158
Closed

ICE: translating unsupported cast (*const DST -> uint) #17167

arielb1 opened this issue Sep 11, 2014 · 2 comments · Fixed by #24158
Labels
A-DSTs Area: Dynamically-sized types (DSTs) I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@arielb1
Copy link
Contributor

arielb1 commented Sep 11, 2014

The following code ICEs:

fn main() {
let r : &[int] = &[1,2,3];
let _ = r as *const [int] as uint;
}

with the following error:

error: internal compiler error: translating unsupported cast: *const [int] (cast_other) -> uint (cast_integral)
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'Box<Any>', /tmp/tmp.AJuZnZc9G6/rust/src/libsyntax/ast_util.rs:776

stack backtrace:
   1:     0x7fd831534e20 - rt::backtrace::imp::write::h05ad71e0d8d53545YFq
   2:     0x7fd831537fe0 - failure::on_fail::h67318170e271381eq1q
   3:     0x7fd831d0ef40 - unwind::begin_unwind_inner::hab98eb958c8dd037MTd
   4:     0x7fd830019c20 - unwind::begin_unwind::h6101647644969584620
   5:     0x7fd83001a3c0 - diagnostic::Handler::bug::h73bed1cade32a05dYID
   6:     0x7fd832101800 - driver::session::Session::bug::haf0a22dbefd7a44bSmv
   7:     0x7fd8325467d0 - middle::trans::expr::trans_imm_cast::h3be503504a2cb4d6iY2
   8:     0x7fd832539140 - middle::trans::expr::trans_unadjusted::hd291a28db4ab1b64i50
   9:     0x7fd8324f6380 - middle::trans::expr::trans::h4aa7a0f1f6a515f12o0
  10:     0x7fd83259d640 - middle::trans::_match::store_local::h95ac038bd6a8824cjRf
  11:     0x7fd8324f4310 - middle::trans::base::init_local::hcaa97d53d8042b21zyb
  12:     0x7fd8324f3810 - middle::trans::controlflow::trans_stmt::h754badf284040952fjW
  13:     0x7fd8324f51b0 - middle::trans::controlflow::trans_block::hd9fdbeb4ba696bd2boW
  14:     0x7fd8325a6520 - middle::trans::base::trans_closure::h201746f506a92a56lpc
  15:     0x7fd8324e4b50 - middle::trans::base::trans_fn::hfc81a7de00fc2ea6yAc
  16:     0x7fd8324e01d0 - middle::trans::base::trans_item::h0854978c1c605151HTc
  17:     0x7fd8325b2910 - middle::trans::base::trans_crate::haa777e4646f5d49aBRd
  18:     0x7fd8329f3c80 - driver::driver::phase_4_translate_to_llvm::hee038ef8fdb7099bjOu
  19:     0x7fd8329eb130 - driver::driver::compile_input::h411f5de1517db61bIpu
  20:     0x7fd832a7f680 - driver::run_compiler::h918ca986269540e0iay
  21:     0x7fd832a7f560 - driver::main_args::closure.148406
  22:     0x7fd83212f540 - task::TaskBuilder<S>::try_future::closure.100321
  23:     0x7fd83212f330 - task::TaskBuilder<S>::spawn_internal::closure.100292
  24:     0x7fd8333eb720 - task::spawn_opts::closure.8416
  25:     0x7fd831d6f930 - rust_try_inner
  26:     0x7fd831d6f920 - rust_try
  27:     0x7fd831d0c520 - unwind::try::ha98ecfc6c2b84277uId
  28:     0x7fd831d0c380 - task::Task::run::hc9ce4f8671722f9bfYc
  29:     0x7fd8333eb490 - task::spawn_opts::closure.8356
  30:     0x7fd831d0df70 - thread::thread_start::h605925f5652c970frid
  31:     0x7fd830ff6dc0 - start_thread
  32:                0x0 - <unknown>
@huonw huonw added the A-DSTs Area: Dynamically-sized types (DSTs) label Sep 11, 2014
@steveklabnik steveklabnik added the I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ label Sep 22, 2014
@ben0x539
Copy link
Contributor

Ran into this too, I think, but the message is different in a static initializer:

extern crate libc;
fn main() {
    unsafe {
        static FOO: *const i8 = "foo\0" as *const str as *const i8;
        libc::puts(FOO);
    }
}

"impossible case reached: bad combination of types for cast"

@Blei
Copy link
Contributor

Blei commented Feb 1, 2015

Possible duplicate of #15355

bors added a commit that referenced this issue Apr 9, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-DSTs Area: Dynamically-sized types (DSTs) I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants