示例#1
0
文件: dhry_1.c 项目: 0mp/freebsd
 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 */
示例#2
0
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
}
示例#3
0
//#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 */