Skip to content

Fix res_ty for rc_annot

Michael Sammler requested to merge ci/fix-res-ty into master

Without this MR code like

u16 rateval = rc_bitfield_init(u16, "rate_sig");

generates

f_code := (
      <[ "#0" :=
        "rateval" <-{ IntOp u16 }
          LocInfoE loc_708 (UnOp (CastOp $ IntOp u16) (IntOp i32) (LocInfoE loc_708 (AnnotExpr 1%nat (BitfieldInitAnnot (rate_sig)) (LocInfoE loc_709 (UnOp (CastOp $ IntOp u16) (IntOp i32) (LocInfoE loc_710 (i2v 0 i32))))))) ;

Note that this contains a cast too much.

This MR fixes this issue and a similar issue for the ternary operator.

@lepigre Does this fix make sense?

Merge request reports