Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
f4ed482c
R
Rust
项目概览
int
/
Rust
接近 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f4ed482c
编写于
3月 23, 2017
作者:
O
Oliver Schneider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
`print` doesn't add a stack frame, so don't write arguments
上级
0927829e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
10 deletion
+17
-10
src/terminator/mod.rs
src/terminator/mod.rs
+17
-10
未找到文件。
src/terminator/mod.rs
浏览文件 @
f4ed482c
...
...
@@ -167,11 +167,13 @@ fn eval_fn_call(
let
arg_ty
=
self
.operand_ty
(
arg
);
args
.push
((
arg_val
,
arg_ty
));
}
self
.eval_fn_call_inner
(
if
self
.eval_fn_call_inner
(
instance
,
destination
,
span
,
)
?
;
)
?
{
return
Ok
(());
}
let
mut
arg_locals
=
self
.frame
()
.mir
.args_iter
();
match
sig
.abi
{
// closure as closure once
...
...
@@ -217,11 +219,13 @@ fn eval_fn_call(
args
.push
((
arg_val
,
arg_ty
));
}
self
.eval_fn_call_inner
(
if
self
.eval_fn_call_inner
(
instance
,
destination
,
span
,
)
?
;
)
?
{
return
Ok
(());
}
let
mut
arg_locals
=
self
.frame
()
.mir
.args_iter
();
trace!
(
"ABI: {:?}"
,
sig
.abi
);
...
...
@@ -305,11 +309,13 @@ fn eval_fn_call(
let
arg_ty
=
self
.operand_ty
(
arg
);
args
.push
((
arg_val
,
arg_ty
));
}
self
.eval_fn_call_inner
(
if
self
.eval_fn_call_inner
(
instance
,
destination
,
span
,
)
?
;
)
?
{
return
Ok
(());
}
let
arg_locals
=
self
.frame
()
.mir
.args_iter
();
match
sig
.abi
{
Abi
::
Rust
=>
{
...
...
@@ -341,12 +347,13 @@ fn eval_fn_call(
}
}
/// Returns Ok(true) when the function was handled completely due to mir not being available
fn
eval_fn_call_inner
(
&
mut
self
,
instance
:
ty
::
Instance
<
'tcx
>
,
destination
:
Option
<
(
Lvalue
<
'tcx
>
,
mir
::
BasicBlock
)
>
,
span
:
Span
,
)
->
EvalResult
<
'tcx
>
{
)
->
EvalResult
<
'tcx
,
bool
>
{
trace!
(
"eval_fn_call_inner: {:#?}, {:#?}"
,
instance
,
destination
);
// Only trait methods can have a Self parameter.
...
...
@@ -358,7 +365,7 @@ fn eval_fn_call_inner(
// let's just ignore all output for now
"std::io::_print"
=>
{
self
.goto_block
(
destination
.unwrap
()
.1
);
return
Ok
(
()
);
return
Ok
(
true
);
},
"std::thread::Builder::new"
=>
return
Err
(
EvalError
::
Unimplemented
(
"miri does not support threading"
.to_owned
())),
"std::env::args"
=>
return
Err
(
EvalError
::
Unimplemented
(
"miri does not support program arguments"
.to_owned
())),
...
...
@@ -371,7 +378,7 @@ fn eval_fn_call_inner(
let
bool
=
self
.tcx.types.bool
;
self
.write_primval
(
lval
,
PrimVal
::
from_bool
(
false
),
bool
)
?
;
self
.goto_block
(
block
);
return
Ok
(
()
);
return
Ok
(
true
);
}
_
=>
{},
}
...
...
@@ -396,7 +403,7 @@ fn eval_fn_call_inner(
return_to_block
,
)
?
;
Ok
(
()
)
Ok
(
false
)
}
pub
fn
read_discriminant_value
(
&
self
,
adt_ptr
:
Pointer
,
adt_ty
:
Ty
<
'tcx
>
)
->
EvalResult
<
'tcx
,
u128
>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录