Pour l'allouer auto-magiquement à l'appel de la fonction, il y a éventuellement une solution, le compilateur pourrait faire comme pour les bibliothèques dynamiques (par contre, ça poserait de gros problèmes en cas d'appels concurrents à la fonction) :
faire pointer par défaut l'appel à la fonction vers une fonction allouant la variable statique puis surchargeant cet appel pour ne plus qu'il soit fait.
Schématiquement :
la_fonction :
call alloue_buf
code utilisant registre_x quand il a besoin de buf
alloue_buf :
buf = malloc 1024
ecrire registre_x <-- buf sur la première instruction de la_fonction
jmp la_fonction+offset
Mais c'est moche (et pose des problèmes de concurrence)
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.
[^] # Re: Re:Sécurité ?
Posté par 2PetitsVerres (Mastodon) . En réponse à la dépêche Un nouveau serveur httpd : Ashd, A Sane HTTP Daemon. Évalué à 2.
faire pointer par défaut l'appel à la fonction vers une fonction allouant la variable statique puis surchargeant cet appel pour ne plus qu'il soit fait.
Schématiquement :
la_fonction :
call alloue_buf
code utilisant registre_x quand il a besoin de buf
alloue_buf :
buf = malloc 1024
ecrire registre_x <-- buf sur la première instruction de la_fonction
jmp la_fonction+offset
Mais c'est moche (et pose des problèmes de concurrence)
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.