Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 18 additions & 12 deletions c2rust-transpile/src/cfg/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

use crate::c_ast::iterators::{DFExpr, SomeId};
use crate::c_ast::CLabelId;
use crate::context::{ExprContext, ExprTreeContext};
use crate::diagnostics::TranslationResult;
use crate::rust_ast::{self, SpanExt};
use c2rust_ast_printer::pprust;
Expand Down Expand Up @@ -556,7 +557,7 @@ impl Cfg<Label, StmtOrDecl> {
/// Completely process a statement into a control flow graph.
pub fn from_stmts(
translator: &Translation,
ctx: ExprContext,
ctx: ExprTreeContext,
stmt_ids: &[CStmtId],
ret: ImplicitReturnType,
ret_ty: Option<CQualTypeId>,
Expand Down Expand Up @@ -1373,7 +1374,7 @@ impl CfgBuilder {
fn convert_stmts_help(
&mut self,
translator: &Translation,
ctx: ExprContext,
ctx: ExprTreeContext,
stmt_ids: &[CStmtId], // C statements to translate
in_tail: Option<ImplicitReturnType>, // Are we in tail position (is there anything to fallthrough to)?
entry: Label, // Current WIP block
Expand Down Expand Up @@ -1406,7 +1407,7 @@ impl CfgBuilder {
fn convert_stmt_help(
&mut self,
translator: &Translation,
ctx: ExprContext,
ctx: ExprTreeContext,

// C statement to translate
stmt_id: CStmtId,
Expand Down Expand Up @@ -1462,7 +1463,8 @@ impl CfgBuilder {
}

CStmtKind::Return(expr) => {
let val = match expr.map(|i| translator.convert_expr(ctx.used(), i, ret_ty)) {
let val = match expr.map(|i| translator.convert_expr(ctx.used().into(), i, ret_ty))
{
Some(r) => Some(r?),
None => None,
};
Expand Down Expand Up @@ -1491,7 +1493,7 @@ impl CfgBuilder {

// Condition
let (stmts, val) = translator
.convert_scalar_to_bool_cast(ctx.used(), scrutinee, true)?
.convert_scalar_to_bool_cast(ctx.used().into(), scrutinee, true)?
.discard_unsafe();
wip.extend(stmts);

Expand Down Expand Up @@ -1564,7 +1566,7 @@ impl CfgBuilder {

// Condition
let (stmts, val) = translator
.convert_scalar_to_bool_cast(ctx.used(), condition, true)?
.convert_scalar_to_bool_cast(ctx.used().into(), condition, true)?
.discard_unsafe();
let cond_val = translator
.ast_context
Expand Down Expand Up @@ -1643,7 +1645,7 @@ impl CfgBuilder {

// Condition
let (stmts, val) = translator
.convert_scalar_to_bool_cast(ctx.used(), condition, true)?
.convert_scalar_to_bool_cast(ctx.used().into(), condition, true)?
.discard_unsafe();
let cond_val = translator
.ast_context
Expand Down Expand Up @@ -1698,7 +1700,7 @@ impl CfgBuilder {
// Condition
if let Some(cond) = condition {
let (stmts, val) = translator
.convert_scalar_to_bool_cast(ctx.used(), cond, true)?
.convert_scalar_to_bool_cast(ctx.used().into(), cond, true)?
.discard_unsafe();
let cond_val = translator
.ast_context
Expand Down Expand Up @@ -1743,7 +1745,7 @@ impl CfgBuilder {
None => slf.add_block(incr_entry, BasicBlock::new_jump(cond_entry)),
Some(incr) => {
let incr_stmts = translator
.convert_expr(ctx.unused(), incr, None)?
.convert_expr(ctx.unused().into(), incr, None)?
.into_stmts();
let mut incr_wip = slf.new_wip_block(incr_entry);
incr_wip.extend(incr_stmts);
Expand Down Expand Up @@ -1859,7 +1861,7 @@ impl CfgBuilder {
Err(mut wip) => {
wip.extend(
translator
.convert_expr(ctx.unused(), expr, None)?
.convert_expr(ctx.unused().into(), expr, None)?
.into_stmts(),
);

Expand Down Expand Up @@ -1926,7 +1928,7 @@ impl CfgBuilder {

let pat = translator
.convert_expr_with_optional_cast(
ctx.const_().pattern().used(),
ctx.const_().pattern().used().into(),
switch_case.expected_type_id,
case_expr,
)
Expand Down Expand Up @@ -2033,7 +2035,11 @@ impl CfgBuilder {
}

let (stmts, val) = translator
.convert_expr_with_optional_cast(ctx.used(), expected_type_id, scrutinee)?
.convert_expr_with_optional_cast(
ctx.used().into(),
expected_type_id,
scrutinee,
)?
.discard_unsafe();
wip.extend(stmts);

Expand Down
Loading
Loading