--- rpl/src/gestion_pile.c 2012/01/17 14:44:05 1.37 +++ rpl/src/gestion_pile.c 2023/08/07 17:42:51 1.77 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.6 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.35 + Copyright (C) 1989-2023 Dr. BERTRAND Joël This file is part of RPL/2. @@ -54,9 +54,9 @@ estimation_taille_pile(struct_processus else { (*s_etat_processus).estimation_taille_pile_tampon = - ((*s_etat_processus).estimation_taille_pile_tampon * - ((double) 0.95)) + ((*s_etat_processus) - .hauteur_pile_operationnelle * ((double) 0.05)); + (((double) (*s_etat_processus).estimation_taille_pile_tampon) * + ((double) 0.95)) + (((double) (*s_etat_processus) + .hauteur_pile_operationnelle) * ((double) 0.05)); } return; @@ -128,14 +128,14 @@ empilement(struct_processus *s_etat_proc if ((*s_etat_processus).langue == 'F') { printf("[%d] Empilement de type %d " - "(profondeur %lu)\n", (int) getpid(), + "(profondeur %lld)\n", (int) getpid(), (*s_objet).type, (*s_etat_processus).hauteur_pile_operationnelle); } else { printf("[%d] Pushing a type %d object " - "(depth %lu)\n", (int) getpid(), (*s_objet).type, + "(depth %lld)\n", (int) getpid(), (*s_objet).type, (*s_etat_processus).hauteur_pile_operationnelle); } @@ -192,14 +192,15 @@ depilement(struct_processus *s_etat_proc if ((*s_etat_processus).langue == 'F') { printf("[%d] Dépilement de type %d " - "(profondeur %lu)\n", (int) getpid(), + "(profondeur %lld)\n", (int) getpid(), (*(*s_objet)).type, (*s_etat_processus).hauteur_pile_operationnelle); } else { printf("[%d] Pulling a type %d object " - "(depth %lu)\n", (int) getpid(), (*(*s_objet)).type, + "(depth %lld)\n", (int) getpid(), + (*(*s_objet)).type, (*s_etat_processus).hauteur_pile_operationnelle); } @@ -251,7 +252,7 @@ depilement(struct_processus *s_etat_proc void affichage_pile(struct_processus *s_etat_processus, struct_liste_chainee - *l_element_courant, unsigned long niveau_courant) + *l_element_courant, integer8 niveau_courant) { unsigned char registre; @@ -266,9 +267,13 @@ affichage_pile(struct_processus *s_etat_ return; } +// Bug de gcc à partir de gcc 4.6 (bug 48544) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wclobbered" + void ecriture_pile(struct_processus *s_etat_processus, file *flux, - struct_liste_chainee *l, unsigned long niveau_courant) + struct_liste_chainee *l, integer8 niveau_courant) { unsigned char *chaine; unsigned char *registre; @@ -294,7 +299,7 @@ ecriture_pile(struct_processus *s_etat_p if ((*s_etat_processus).var_volatile_recursivite == 0) { - if (fprintf(flux, "%lu: ...\n", niveau_courant) < 0) + if (fprintf(flux, "%lld: ...\n", niveau_courant) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -321,9 +326,9 @@ ecriture_pile(struct_processus *s_etat_p return; } - sprintf(tampon, "%lu: ", niveau_courant); + sprintf(tampon, "%lld: ", niveau_courant); - if ((chaine = formateur(s_etat_processus, strlen(tampon), + if ((chaine = formateur(s_etat_processus, (long) strlen(tampon), (*l_element_courant).donnee)) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -345,7 +350,7 @@ ecriture_pile(struct_processus *s_etat_p free(registre); } - if (fprintf(flux, "%lu: %s\n", niveau_courant, chaine) < 0) + if (fprintf(flux, "%lld: %s\n", niveau_courant, chaine) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -372,8 +377,7 @@ ecriture_pile(struct_processus *s_etat_p void impression_pile(struct_processus *s_etat_processus, - struct_liste_chainee *l, unsigned char methode, - unsigned long niveau_courant) + struct_liste_chainee *l, unsigned char methode, integer8 niveau_courant) { struct_objet s_objet; @@ -421,9 +425,9 @@ impression_pile(struct_processus *s_etat if (methode == 'C') { s_objet.type = CHN; - sprintf(tampon, "%lu: ", niveau_courant); + sprintf(tampon, "%lld: ", niveau_courant); - if ((chaine = formateur(s_etat_processus, strlen(tampon), + if ((chaine = formateur(s_etat_processus, (long) strlen(tampon), (*l_element_courant).donnee)) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -454,7 +458,7 @@ impression_pile(struct_processus *s_etat } sprintf((unsigned char *) s_objet.objet, - "\n\\noindent\\begin{verbatim}\n%lu: %s\n\\end{verbatim}", + "\n\\noindent\\begin{verbatim}\n%lld: %s\n\\end{verbatim}", niveau_courant, chaine); free(chaine); @@ -470,4 +474,6 @@ impression_pile(struct_processus *s_etat return; } +#pragma GCC diagnostic pop + // vim: ts=4