void Proc_1 (REG Rec_Pointer Ptr_Val_Par) /******************/ /* executed once */ { REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp; /* == Ptr_Glob_Next */ /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp, */ /* corresponds to "rename" in Ada, "with" in Pascal */ structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob); Ptr_Val_Par->variant.var_1.Int_Comp = 5; Next_Record->variant.var_1.Int_Comp = Ptr_Val_Par->variant.var_1.Int_Comp; Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp; Proc_3 (&Next_Record->Ptr_Comp); /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp == Ptr_Glob->Ptr_Comp */ if (Next_Record->Discr == Ident_1) /* then, executed */ { Next_Record->variant.var_1.Int_Comp = 6; Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp, &Next_Record->variant.var_1.Enum_Comp); Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp; Proc_7 (Next_Record->variant.var_1.Int_Comp, 10, &Next_Record->variant.var_1.Int_Comp); } else /* not executed */ structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp); } /* Proc_1 */
void Proc1(RecordPtr PtrParIn) { #define NextRecord (*(PtrParIn->PtrComp)) structassign(NextRecord, *PtrGlb); PtrParIn->IntComp = 5; NextRecord.IntComp = PtrParIn->IntComp; NextRecord.PtrComp = PtrParIn->PtrComp; Proc3(&NextRecord.PtrComp); if (NextRecord.Discr == Ident1) { NextRecord.IntComp = 6; Proc6(PtrParIn->EnumComp, &NextRecord.EnumComp); NextRecord.PtrComp = PtrGlb->PtrComp; Proc7(NextRecord.IntComp, 10, &NextRecord.IntComp); } else structassign(*PtrParIn, NextRecord); #undef NextRecord }
//#LIS# Start LIS Modification //Proc_1 (Ptr_Val_Par) Proc_1 () //### no parameters, as only global variables are used /******************/ //REG Rec_Pointer Ptr_Val_Par; //###equivalent to Ptr_Glob /* executed once */ //#LIS# End LIS Modification { //#LIS# Start LIS Modification //REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp; Next_Record = Ptr_Glob->Ptr_Comp; //#LIS# End LIS Modification /* == Ptr_Glob_Next */ /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp, */ /* corresponds to "rename" in Ada, "with" in Pascal */ //#LIS# Start LIS Modification //structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob); structassign (*Ptr_Glob->Ptr_Comp, *Ptr_Glob); //#LIS# End LIS Modification //#LIS# Start LIS Modification //Ptr_Val_Par->variant.var_1.Int_Comp = 5; Ptr_Glob->variant.var_1.Int_Comp = 5; //#LIS# End LIS Modification //#LIS# Start LIS Modification //Next_Record->variant.var_1.Int_Comp = Ptr_Val_Par->variant.var_1.Int_Comp; Next_Record->variant.var_1.Int_Comp = Ptr_Glob->variant.var_1.Int_Comp; //#LIS# End LIS Modification //#LIS# Start LIS Modification //Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp; Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp; //#LIS# End LIS Modification //#LIS# Start LIS Modification //Proc_3 (&Next_Record->Ptr_Comp); Ptr_Ref_Par = &Next_Record->Ptr_Comp; Proc_3(); //#LIS# End LIS Modification /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp == Ptr_Glob->Ptr_Comp */ if (Next_Record->Discr == Ident_1) /* then, executed */ { Next_Record->variant.var_1.Int_Comp = 6; //#LIS# Start LIS Modification /* Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp, &Next_Record->variant.var_1.Enum_Comp); */ /*Proc_6 (Ptr_Glob->variant.var_1.Enum_Comp, &Next_Record->variant.var_1.Enum_Comp); */ Enum_Val_Par = Ptr_Glob->variant.var_1.Enum_Comp; Enum_Ref_Par = &Next_Record->variant.var_1.Enum_Comp; Proc_6(); //#LIS# End LIS Modification Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp; //#LIS# Start LIS Modification /*Proc_7 (Next_Record->variant.var_1.Int_Comp, 10, &Next_Record->variant.var_1.Int_Comp);*/ Int_1_Par_Val_Proc7 = Next_Record->variant.var_1.Int_Comp; Int_2_Par_Val_Proc7 = 10; Int_Par_Ref_Proc7 = &Next_Record->variant.var_1.Int_Comp; Proc_7(); //#LIS# End LIS Modification } else /* not executed */ //#LIS# Start LIS Modification //structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp); structassign (*Ptr_Glob, *Ptr_Glob->Ptr_Comp); //#LIS# End LIS Modification } /* Proc_1 */