Issue 1:
% RUST_BACKTRACE=1 rustc z.rs

z.rs:32:23: 32:27 error: internal compiler error: this path should not cause illegal move

z.rs:32 let xs = unsafe { *x.s };

^~~~

note: the compiler unexpectedly panicked. 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

thread 'rustc' panicked at 'Box', /Users/swizard/distr/rust/src/libsyntax/diagnostic.rs:129

stack backtrace:

1: 0x109ab2287 - sys::backtrace::write::h2b97e0c0d0aa5194lOu

2: 0x109ad85f2 - failure::on_fail::h32ddd7e1e3390facx5B

3: 0x109a33b88 - rt::unwind::begin_unwind_inner::hb37dbcf6d204588dZMB

4: 0x1091a094f - rt::unwind::begin_unwind::h8510903163256875893

5: 0x1091a08fc - diagnostic::SpanHandler::span_bug::hfcb4ef83c0f1c5bdUNE

6: 0x10691b76d - session::Session::span_bug::hb8a1a20581917af1F2p

7: 0x106895a2d - borrowck::build_borrowck_dataflow_data::h06a69dcffbac8f96gVe

8: 0x106890f48 - borrowck::borrowck_fn::h7e0284b073f72b9eDSe

9: 0x106891ef5 - borrowck::borrowck_item::hdde643940f987691BRe

10: 0x1068925df - borrowck::check_crate::hbd8fcf67d63856aetMe

11: 0x105fe9718 - driver::phase_3_run_analysis_passes::h96113b6369fd2034pGa

12: 0x105fcd5a7 - driver::compile_input::hd95a9a5f39416926Cba

13: 0x1060a0e3e - run_compiler::hae062a80d6febfab2ac

14: 0x10609de2f - thunk::F.Invoke<A, R>::invoke::h7970639354112803481

15: 0x10609cac0 - rt::unwind::try::try_fn::h3125464406127530110

16: 0x109b51ce9 - rust_try_inner

17: 0x109b51cd6 - rust_try

18: 0x10609d180 - thunk::F.Invoke<A, R>::invoke::h13905946553486041138

19: 0x109ac2bf3 - sys:🧵:thread_start::h8b9ffeb7ea0667f4xVx

20: 0x7fff87bec268 - _pthread_body

21: 0x7fff87bec1e5 - _pthread_body

% rustc --version --verbose

rustc 1.0.0-dev (7858cb4 2015-02-03 03:44:05 +0000)

binary: rustc

commit-hash: 7858cb4

commit-date: 2015-02-03 03:44:05 +0000

host: x86_64-apple-darwin

release: 1.0.0-dev

% uname -a

Darwin pair 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64

% cat z.rs

#![feature(libc,core,std_misc)]
extern crate libc;
use libc::{size_t, c_void};
use std::{mem};

extern {
fn malloc(size: size_t) -> *mut c_void;
}

#[repr(C)]
#[derive(Debug)]
#[allow(raw_pointer_derive)]
struct S_ {
ext_value: *mut c_void,
}

#[derive(Debug)]
#[allow(raw_pointer_derive)]
pub struct S {
s: *mut S_,
}

impl S {
fn new() -> S {
let obj = unsafe { malloc(mem::size_of::<S_>() as size_t) as *mut S_ };
S { s: obj }
}
}

fn main() {
let x = S::new();
let xs = unsafe { *x.s };
println!("x = {:?}, x.s = {:?}", x, xs);
}

Issue 2:
Input:

struct T(u8);

fn t() -> *mut T {
unsafe { 0u8 as *mut T }
}

fn main() {
let a = unsafe { *t() };
}

Output:

$ rustc ../test.rs
../test.rs:9:19: 9:23 error: internal compiler error: this path should not cause illegal move
../test.rs:9 let a = unsafe { *t() };
^~~~
note: the compiler unexpectedly panicked. 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
thread 'rustc' panicked at 'Box<Any>', /Users/John/Documents/dev/rust/src/libsyntax/diagnostic.rs:123

stack backtrace:
1: 0x10f825b75 - sys::backtrace::write::h757d4037fec4513elCt
2: 0x10f84800f - failure::on_fail::he99e1d2cd81a67a80Hz
3: 0x10f7b3c8a - rt::unwind::begin_unwind_inner::hede15ebc165353e0Qpz
4: 0x10d508707 - rt::unwind::begin_unwind::h5150449308391082809
5: 0x10d50869c - diagnostic::SpanHandler::span_bug::h1cc7aa850b4525b9nQF
6: 0x10c93bc1d - session::Session::span_bug::h9dff6f0c981e0b95mRq
7: 0x10c547999 - borrowck::build_borrowck_dataflow_data::hbfab9f3785e58ec8QRe
8: 0x10c5432fb - borrowck::borrowck_fn::h9d4d5a57ec1e26a2cPe
9: 0x10c5440f2 - borrowck::borrowck_item::hd3de64f0b51b624a9Ne
10: 0x10c54461f - borrowck::check_crate::hab49ad1d67fb67e9ZIe
11: 0x10c09e8aa - driver::phase_3_run_analysis_passes::h3bf5eb3f470c8788gwa
12: 0x10c082d90 - driver::compile_input::h63293298907e332cxba
13: 0x10c14e7ba - monitor::unboxed_closure.22558
14: 0x10c14cf15 - thunk::F.Invoke<A, R>::invoke::h15985566512806182469
15: 0x10c14bcf0 - rt::unwind::try::try_fn::h5957420952141477940
16: 0x10f8b1189 - rust_try_inner
17: 0x10f8b1176 - rust_try
18: 0x10c14c3ec - thunk::F.Invoke<A, R>::invoke::h12578415658120090831
19: 0x10f835814 - sys::thread::thread_start::he6c5dcba45c95bf2drw
20: 0x7fff933e22fc - _pthread_body
21: 0x7fff933e2279 - _pthread_body