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 - tried to get overflow intrinsic for non-int type #23037

Closed
Jojoshua opened this issue Mar 4, 2015 · 7 comments · Fixed by #23692
Closed

ICE - tried to get overflow intrinsic for non-int type #23037

Jojoshua opened this issue Mar 4, 2015 · 7 comments · Fixed by #23692
Assignees
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@Jojoshua
Copy link

Jojoshua commented Mar 4, 2015

thread 'rustc' panicked at 'tried to get overflow intrinsic for non-int type', C
:\bot\slave\nightly-dist-rustc-win-64\build\src\librustc_trans\trans\expr.rs:235
2

Here is the code

#![feature(core)]

use std::simd::i16x8;

fn main() {
    // create simd vectors
    let x = i16x8(1, 2, 3, 4,1, 2, 3, 4);
    let y = i16x8(4, 3, 2, 1,1, 2, 3, 4);

    // simd product
    let z = x * y;

    // like any struct, the simd vector can be destructured using `let`
    let i16x8(a, b, c, d,e,f,g,h) = z;

    println!("{:?}", (a, b, c, d,e,f,g,h));
}
@fhartwig
Copy link
Contributor

fhartwig commented Mar 4, 2015

I get the same error when trying to compile rust-crypto (after some fixes, see https://github.com/fhartwig/rust-crypto/tree/rustup) with the current nightly (rustc 1.0.0-nightly (fed12499e 2015-03-03) (built 2015-03-03))

@steveklabnik steveklabnik added the I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ label Mar 4, 2015
@dragan
Copy link

dragan commented Mar 5, 2015

I can confirm the same error when compiling rust-crypto.

$ rustc -v --version

  rustc 1.0.0-nightly (3b3bb0e68 2015-03-04) (built 2015-03-04)
  binary: rustc
  commit-hash: 3b3bb0e682c2d252e9f62dd9df5cff9552af91ad
  commit-date: 2015-03-04
  build-date: 2015-03-04
  host: x86_64-apple-darwin
  release: 1.0.0-nightly

Backtrace:

   Compiling rustc-serialize v0.3.1
   Compiling libc v0.1.2
   Compiling gcc v0.3.1
   Compiling log v0.2.5
   Compiling rand v0.1.4
   Compiling time v0.1.19
   Compiling rust-crypto v0.2.19 (file:///Users/dragan/Code/OpenSource/RustCrypto)
thread 'rustc' panicked at 'tried to get overflow intrinsic for non-int type', /Users/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-mac/build/src/librustc_trans/trans/expr.rs:2352

stack backtrace:
   1:        0x1113fdb52 - sys::backtrace::write::h6b0889bc971c1ad3IDA
   2:        0x11142c844 - panicking::on_panic::h0fcd1d74630df38dKsJ
   3:        0x11134ac67 - rt::unwind::begin_unwind_inner::h56b969a14fc61916gbJ
   4:        0x10de4185f - rt::unwind::begin_unwind::h5082286894643109956
   5:        0x10df219d1 - trans::expr::with_overflow_check::hd6793b92ae2aee44ylk
   6:        0x10df1ff05 - trans::expr::trans_eager_binop::h416c33bf491e0717upj
   7:        0x10df03e5f - trans::expr::trans_assign_op::hc0d59ae1da070adeDYj
   8:        0x10deec30f - trans::expr::trans_rvalue_stmt_unadjusted::h450cf67b08184907jui
   9:        0x10de96086 - trans::expr::trans_into::h4a29f680db4b3526znh
  10:        0x10de94fa0 - trans::controlflow::trans_stmt_semi::h318c4f3f34b9c533o4d
  11:        0x10de96ace - trans::controlflow::trans_block::h26a308528bb95051b5d
  12:        0x10dee8050 - trans::expr::trans_rvalue_dps_unadjusted::hca2c07ae951484c14zi
  13:        0x10de95f59 - trans::expr::trans_into::h4a29f680db4b3526znh
  14:        0x10de94fa0 - trans::controlflow::trans_stmt_semi::h318c4f3f34b9c533o4d
  15:        0x10de96ace - trans::controlflow::trans_block::h26a308528bb95051b5d
  16:        0x10dee8050 - trans::expr::trans_rvalue_dps_unadjusted::hca2c07ae951484c14zi
  17:        0x10de95f59 - trans::expr::trans_into::h4a29f680db4b3526znh
  18:        0x10df974e0 - trans::_match::trans_match_inner::he768a1b2ccde6888CIw
  19:        0x10dee7fe3 - trans::expr::trans_rvalue_dps_unadjusted::hca2c07ae951484c14zi
  20:        0x10de95f59 - trans::expr::trans_into::h4a29f680db4b3526znh
  21:        0x10de96e29 - trans::controlflow::trans_block::h26a308528bb95051b5d
  22:        0x10deebf9e - trans::expr::trans_rvalue_stmt_unadjusted::h450cf67b08184907jui
  23:        0x10de96086 - trans::expr::trans_into::h4a29f680db4b3526znh
  24:        0x10df974e0 - trans::_match::trans_match_inner::he768a1b2ccde6888CIw
  25:        0x10dee7fe3 - trans::expr::trans_rvalue_dps_unadjusted::hca2c07ae951484c14zi
  26:        0x10de95f59 - trans::expr::trans_into::h4a29f680db4b3526znh
  27:        0x10dfafd26 - trans::_match::mk_binding_alloca::h3448676421097350985
  28:        0x10de95280 - trans::base::init_local::h08a9fcff749ad013czs
  29:        0x10de96b02 - trans::controlflow::trans_block::h26a308528bb95051b5d
  30:        0x10dee8050 - trans::expr::trans_rvalue_dps_unadjusted::hca2c07ae951484c14zi
  31:        0x10de95f59 - trans::expr::trans_into::h4a29f680db4b3526znh
  32:        0x10de94fa0 - trans::controlflow::trans_stmt_semi::h318c4f3f34b9c533o4d
  33:        0x10de96ace - trans::controlflow::trans_block::h26a308528bb95051b5d
  34:        0x10df75da9 - trans::base::trans_closure::h1e78b4450eb13a03Kkt
  35:        0x10de7e645 - trans::base::trans_fn::h31c9353b85ff9dd9Dvt
  36:        0x10de7aaa6 - trans::base::trans_item::h8ce277cc13b040a3vTt
  37:        0x10de7a8a7 - trans::base::trans_item::h8ce277cc13b040a3vTt
  38:        0x10df7eecb - trans::base::trans_crate::hb69c466e59630a14GPu
  39:        0x10d8bbec7 - driver::phase_4_translate_to_llvm::he4e045cdc3897b4crNa
  40:        0x10d8977f2 - driver::compile_input::h25d96a14ec26932cIba
  41:        0x10d96972e - run_compiler::h15c3ea085a111a6fH5b
  42:        0x10d966ac7 - thunk::F.Invoke<A, R>::invoke::h11905936354613679413
  43:        0x10d96560f - rt::unwind::try::try_fn::h4025213131938170097
  44:        0x1114a9628 - rust_try_inner
  45:        0x1114a9615 - rust_try
  46:        0x10d965e48 - thunk::F.Invoke<A, R>::invoke::h13725635537516470714
  47:        0x1114150a2 - sys::thread::thread_start::h1120d6d2e105321012E
  48:     0x7fff8368d898 - _pthread_body
  49:     0x7fff8368d729 - _pthread_start

@parbo
Copy link

parbo commented Mar 5, 2015

I get the same error for rust-crypto on linux (x86_64):

$ rustc -v --version
rustc 1.0.0-nightly (3b3bb0e68 2015-03-04) (built 2015-03-05)
binary: rustc
commit-hash: 3b3bb0e682c2d252e9f62dd9df5cff9552af91ad
commit-date: 2015-03-04
build-date: 2015-03-05
host: x86_64-unknown-linux-gnu
release: 1.0.0-nightly
$ RUST_BACKTRACE=1 cargo build
    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling log v0.2.5
   Compiling rustc-serialize v0.3.1
   Compiling libc v0.1.2
   Compiling gcc v0.3.1
   Compiling rand v0.1.4
   Compiling time v0.1.19
   Compiling rust-crypto v0.2.19 (file:///home/parbo/src/rust-crypto)
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'tried to get overflow intrinsic for non-int type', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/librustc_trans/trans/expr.rs:2352

stack backtrace:
   1:     0x7fa61457bf1f - sys::backtrace::write::hf79a3da4fdecb8a0OBA
   2:     0x7fa6145a6c32 - panicking::on_panic::h9f64f4c69e19f194hHJ
   3:     0x7fa6144dbeda - rt::unwind::begin_unwind_inner::h37f4496c980fe936knJ
   4:     0x7fa613b7eddc - rt::unwind::begin_unwind::h265200097513870162
   5:     0x7fa613c55ba6 - trans::expr::with_overflow_check::hb51eee44b3064a1aylk
   6:     0x7fa613c5423a - trans::expr::trans_eager_binop::hd0a96011514b6b88upj
   7:     0x7fa613c38c2a - trans::expr::trans_assign_op::h2b754fac4ce95c82DYj
   8:     0x7fa613c21e5c - trans::expr::trans_rvalue_stmt_unadjusted::ha3dc197598d6fe14jui
   9:     0x7fa613bcf510 - trans::expr::trans_into::h95c6d2681fdd2548znh
  10:     0x7fa613bce594 - trans::controlflow::trans_stmt_semi::h3c27cfa3f0150db6o4d
  11:     0x7fa613bcfed0 - trans::controlflow::trans_block::h3e86dfa8c58560e6b5d
  12:     0x7fa613c1df7e - trans::expr::trans_rvalue_dps_unadjusted::hd47de7ac66e018254zi
  13:     0x7fa613bcf3f6 - trans::expr::trans_into::h95c6d2681fdd2548znh
  14:     0x7fa613bce594 - trans::controlflow::trans_stmt_semi::h3c27cfa3f0150db6o4d
  15:     0x7fa613bcfed0 - trans::controlflow::trans_block::h3e86dfa8c58560e6b5d
  16:     0x7fa613c1df7e - trans::expr::trans_rvalue_dps_unadjusted::hd47de7ac66e018254zi
  17:     0x7fa613bcf3f6 - trans::expr::trans_into::h95c6d2681fdd2548znh
  18:     0x7fa613cc7df0 - trans::_match::trans_match_inner::hed8323987dcd430bCIw
  19:     0x7fa613c1df22 - trans::expr::trans_rvalue_dps_unadjusted::hd47de7ac66e018254zi
  20:     0x7fa613bcf3f6 - trans::expr::trans_into::h95c6d2681fdd2548znh
  21:     0x7fa613bd0227 - trans::controlflow::trans_block::h3e86dfa8c58560e6b5d
  22:     0x7fa613c21b19 - trans::expr::trans_rvalue_stmt_unadjusted::ha3dc197598d6fe14jui
  23:     0x7fa613bcf510 - trans::expr::trans_into::h95c6d2681fdd2548znh
  24:     0x7fa613cc7df0 - trans::_match::trans_match_inner::hed8323987dcd430bCIw
  25:     0x7fa613c1df22 - trans::expr::trans_rvalue_dps_unadjusted::hd47de7ac66e018254zi
  26:     0x7fa613bcf3f6 - trans::expr::trans_into::h95c6d2681fdd2548znh
  27:     0x7fa613cdf967 - trans::_match::mk_binding_alloca::h13035368140960659810
  28:     0x7fa613bce7fd - trans::base::init_local::h1e7c96bb7077440dczs
  29:     0x7fa613bcff02 - trans::controlflow::trans_block::h3e86dfa8c58560e6b5d
  30:     0x7fa613c1df7e - trans::expr::trans_rvalue_dps_unadjusted::hd47de7ac66e018254zi
  31:     0x7fa613bcf3f6 - trans::expr::trans_into::h95c6d2681fdd2548znh
  32:     0x7fa613bce594 - trans::controlflow::trans_stmt_semi::h3c27cfa3f0150db6o4d
  33:     0x7fa613bcfed0 - trans::controlflow::trans_block::h3e86dfa8c58560e6b5d
  34:     0x7fa613ca7821 - trans::base::trans_closure::hab3cc3c679d5ff23Kkt
  35:     0x7fa613bb8b08 - trans::base::trans_fn::he0569b8eb832adf9Dvt
  36:     0x7fa613bb5241 - trans::base::trans_item::h48fc370b7d259ac7vTt
  37:     0x7fa613bb5078 - trans::base::trans_item::h48fc370b7d259ac7vTt
  38:     0x7fa613cb07ec - trans::base::trans_crate::hc92be67ede893c70GPu
  39:     0x7fa614bb4e83 - driver::phase_4_translate_to_llvm::h9904f5d5fc3fb761rNa
  40:     0x7fa614b9083f - driver::compile_input::h3913ff7013f0c056Iba
  41:     0x7fa614c58cb7 - run_compiler::h28a4446bae1034e7H5b
  42:     0x7fa614c56829 - thunk::F.Invoke<A, R>::invoke::h6503055919709693733
  43:     0x7fa614c554a0 - rt::unwind::try::try_fn::h1384674024000742916
  44:     0x7fa614616de8 - rust_try_inner
  45:     0x7fa614616dd5 - rust_try
  46:     0x7fa614c55c3f - thunk::F.Invoke<A, R>::invoke::h5780663349966142752
  47:     0x7fa614591965 - sys::thread::thread_start::h4ab695857833a5dar8E
  48:     0x7fa60e3ed0a4 - start_thread
  49:     0x7fa61414ccfc - __clone
  50:                0x0 - <unknown>

Could not compile `rust-crypto`.

To learn more, run the command again with --verbose.

@GGist
Copy link
Contributor

GGist commented Mar 5, 2015

Interestingly enough I did not get this error when compiling with --cfg ndebug which is the flag that cargo adds when building in release mode. Maybe this bit of information would be useful for whoever decides to track down the bug.

Here is my compiler version:

$ rustc -v --version
rustc 1.0.0-nightly (fed12499e 2015-03-03) (built 2015-03-04)
binary: rustc
commit-hash: fed12499e7d91f9cdfba5833e34d20e8fd19b898
commit-date: 2015-03-03
build-date: 2015-03-04
host: i686-pc-windows-gnu
release: 1.0.0-nightly

@pnkfelix
Copy link
Member

pnkfelix commented Mar 5, 2015

The arithmetic overflow checking is only turned on for debug builds, so I am not surprised that --cfg ndebug affects reproducibility here.

@pnkfelix pnkfelix self-assigned this Mar 5, 2015
@pnkfelix
Copy link
Member

pnkfelix commented Mar 5, 2015

(anyway, I will try to find some time to address this. not 100% sure what our story is for mixing overflow checking with simd ... seems like simd values should be implicitly wrapping-arithmetic...)

@pnkfelix
Copy link
Member

pnkfelix commented Mar 6, 2015

(also, are we really making simd part of just the core feature? It strikes me as something that deserved a more specific feature gate, if you ask me...)

DaGenix pushed a commit to DaGenix/rust-crypto that referenced this issue Mar 8, 2015
Manishearth pushed a commit to Manishearth/rust that referenced this issue Mar 25, 2015
Disable overflow checking on SIMD operations, fix rust-lang#23037
Manishearth added a commit to Manishearth/rust that referenced this issue Mar 25, 2015
arielb1 pushed a commit to arielb1/rust that referenced this issue May 26, 2015
XMPPwocky pushed a commit to XMPPwocky/rust that referenced this issue May 29, 2015
BlockBlazeDev added a commit to BlockBlazeDev/rust-crypto that referenced this issue Aug 8, 2024
cosmycoder added a commit to cosmycoder/rust-crypto that referenced this issue Sep 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.

7 participants