--- rpl/src/instructions_i1.c 2011/06/21 07:45:25 1.20 +++ rpl/src/instructions_i1.c 2018/05/30 09:27:35 1.62 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.0.prerelease.1 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.29 + Copyright (C) 1989-2018 Dr. BERTRAND Joël This file is part of RPL/2. @@ -122,7 +122,7 @@ instruction_inv(struct_processus *s_etat if ((*s_objet_argument).type == INT) { - diviseur_reel = (*((integer8 *) (*s_objet_argument).objet)); + diviseur_reel = (real8) (*((integer8 *) (*s_objet_argument).objet)); } else { @@ -562,7 +562,7 @@ instruction_iferr(struct_processus *s_et printf(" THEN\n"); printf(" (expression 1)\n"); printf(" [ELSE\n"); - printf(" (expression n)]\n"); + printf(" (expression 2)]\n"); printf(" END\n"); return; @@ -874,6 +874,8 @@ instruction_ifte(struct_processus *s_eta void instruction_sensible_i(struct_processus *s_etat_processus) { + (*s_etat_processus).instruction_sensible = 'Y'; + if (strcmp((*s_etat_processus).instruction_courante, "i") == 0) { instruction_i(s_etat_processus); @@ -1055,7 +1057,7 @@ instruction_ip(struct_processus *s_etat_ if ((*((real8 *) (*s_objet_argument).objet)) > 0) { - (*((integer8 *) (*s_objet_resultat).objet)) = + (*((integer8 *) (*s_objet_resultat).objet)) = (integer8) floor((*((real8 *) (*s_objet_argument).objet))); if (!((((*((integer8 *) (*s_objet_resultat).objet)) <= @@ -1079,7 +1081,7 @@ instruction_ip(struct_processus *s_etat_ } else { - (*((integer8 *) (*s_objet_resultat).objet)) = + (*((integer8 *) (*s_objet_resultat).objet)) = (integer8) ceil((*((real8 *) (*s_objet_argument).objet))); if (!(((((*((integer8 *) (*s_objet_resultat).objet)) - 1) < @@ -1333,8 +1335,8 @@ instruction_im(struct_processus *s_etat_ struct_objet *s_objet_argument; struct_objet *s_objet_resultat; - unsigned long i; - unsigned long j; + integer8 i; + integer8 j; (*s_etat_processus).erreur_execution = d_ex; @@ -1451,8 +1453,8 @@ instruction_im(struct_processus *s_etat_ } if (((*((struct_vecteur *) (*s_objet_resultat).objet)).tableau = - malloc((*(((struct_vecteur *) (*s_objet_argument) - .objet))).taille * sizeof(integer8))) == NULL) + malloc(((size_t) (*(((struct_vecteur *) (*s_objet_argument) + .objet))).taille) * sizeof(integer8))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -1477,8 +1479,8 @@ instruction_im(struct_processus *s_etat_ } if (((*((struct_vecteur *) (*s_objet_resultat).objet)).tableau = - malloc((*(((struct_vecteur *) (*s_objet_argument) - .objet))).taille * sizeof(real8))) == NULL) + malloc(((size_t) (*(((struct_vecteur *) (*s_objet_argument) + .objet))).taille) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -1512,8 +1514,8 @@ instruction_im(struct_processus *s_etat_ } if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = - malloc((*(((struct_matrice *) (*s_objet_argument) - .objet))).nombre_lignes * sizeof(integer8 *))) == NULL) + malloc(((size_t) (*(((struct_matrice *) (*s_objet_argument) + .objet))).nombre_lignes) * sizeof(integer8 *))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -1529,9 +1531,9 @@ instruction_im(struct_processus *s_etat_ .nombre_lignes; i++) { if ((((integer8 **) (*((struct_matrice *) (*s_objet_resultat) - .objet)).tableau)[i] = malloc( + .objet)).tableau)[i] = malloc(((size_t) (*(((struct_matrice *) (*s_objet_argument).objet))) - .nombre_colonnes * sizeof(integer8))) == NULL) + .nombre_colonnes) * sizeof(integer8))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -1554,8 +1556,8 @@ instruction_im(struct_processus *s_etat_ } if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = - malloc((*(((struct_matrice *) (*s_objet_argument) - .objet))).nombre_lignes * sizeof(real8))) == NULL) + malloc(((size_t) (*(((struct_matrice *) (*s_objet_argument) + .objet))).nombre_lignes) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return; @@ -1571,9 +1573,9 @@ instruction_im(struct_processus *s_etat_ .nombre_lignes; i++) { if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat) - .objet)).tableau)[i] = malloc( + .objet)).tableau)[i] = malloc(((size_t) (*(((struct_matrice *) (*s_objet_argument).objet))) - .nombre_colonnes * sizeof(real8))) == NULL) + .nombre_colonnes) * sizeof(real8))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return;