use crate::value::Value;
use libc::c_uint;
use log::debug;
-use rustc::hir::def_id::DefId;
-use rustc::hir::{self, Node};
use rustc::middle::codegen_fn_attrs::{CodegenFnAttrFlags, CodegenFnAttrs};
use rustc::mir::interpret::{read_target_uint, Allocation, ConstValue, ErrorHandled, Pointer};
use rustc::mir::mono::MonoItem;
use rustc::ty::{self, Instance, Ty};
use rustc::{bug, span_bug};
use rustc_codegen_ssa::traits::*;
+use rustc_hir as hir;
+use rustc_hir::def_id::DefId;
+use rustc_hir::Node;
use rustc_span::symbol::{sym, Symbol};
use rustc_span::Span;
use rustc_target::abi::HasDataLayout;
cx: &CodegenCx<'ll, 'tcx>,
def_id: DefId,
) -> Result<(&'ll Value, &'tcx Allocation), ErrorHandled> {
- let static_ = cx.tcx.const_eval_poly(def_id)?;
-
- let alloc = match static_.val {
- ty::ConstKind::Value(ConstValue::ByRef { alloc, offset }) if offset.bytes() == 0 => alloc,
- _ => bug!("static const eval returned {:#?}", static_),
+ let alloc = match cx.tcx.const_eval_poly(def_id)? {
+ ConstValue::ByRef { alloc, offset } if offset.bytes() == 0 => alloc,
+ val => bug!("static const eval returned {:#?}", val),
};
Ok((const_alloc_to_llvm(cx, alloc), alloc))
}