Le 18/10/2023 à 21:12, Blady a écrit :
>> Ce qui m'étonne, c'est que le crash se produit dans la fonction
>> Dir_Search, fonction de la runtime.
>> Apparemment, plus préciément, dans le calcul d'une date
>> (Ada.Calendar.Arithmetic_Operations.Add).
>>
>> C'est étrange et je ne vois pas comment remédier à ce problème. Il n'y
>> a rien à ce sujet ici :
>>
http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-A-16.html
>
> Bonjour Nicolas,
>
> J'ai testé sur macOS ça tourne :
>
> % ./bin/test_20231018_dir_search
> Test en cours...
> Found : .
> Found : ..
> Found : Test avec entête.txt
>
>
> Le code concerné est :
>
> C_Name := Name & ASCII.NUL;
> Date := C_Modification_Time (C_Name'Address);
>
> if Date = Invalid_Time then
> raise Use_Error with
> "Unable to get modification time of the file """ & Name &
> '"';
> end if;
>
> Je suspecte la fonction C_Modification_Time avec des caractères
> accentués ayant un code différent entre Linux / macOS / Windows, ce qui
> est souvent le cas pour ces fonctions codées en C :
>
> function C_Modification_Time (N : System.Address) return
> Ada.Calendar.Time;
> pragma Import (C, C_Modification_Time, "__gnat_file_time");
>
> Il faudrait aller voir dans le code C de __gnat_file_time.
> Sinon tu peux toujours poster un rapport d'anomalie sur
>
https://gcc.gnu.org/bugzilla.
Je pense qu'un rapport de bug sera nécessaire. A confirmer.