salut, je testais ta librairie cloog et je suis tombé sur un point qui m'a fait perdre un peu de temps, je pense que si ce n'est pas le cas, ça serait pas mal de le préciser dans la doc pour éviter des déboires. je te passe les détails du pourquoi, en fait je suis tombé sur un core dont voici la trace d'appels : #0 0x1b907460 in _vgi__soname$3Alibc$2Eso$2E6$3Afree (p=0x0) at vg_replace_malloc.c:153 #1 0x1bb1e2f2 in cloog_statement_free (statement=0x1bb58d30) at source/statement.c:118 #2 0x1bb19390 in cloog_loop_free_parts (loop=0x1bb66280, domain=1, statement=1, inner=0, next=0) at source/loop.c:170 #3 0x1bb1aba5 in cloog_loop_simplify (loop=0x1bb66280, context=0x1bb662c8, level=3, nb_par=0) at source/loop.c:1096 #4 0x1bb1a9c7 in cloog_loop_simplify (loop=0x1bb66530, context=0x1bb68820, level=2, nb_par=0) at source/loop.c:1040 #5 0x1bb1a9c7 in cloog_loop_simplify (loop=0x1bb68a60, context=0x1bb58b98, level=1, nb_par=0) at source/loop.c:1040 #6 0x1bb18e32 in cloog_program_generate (program=0x1bb57cc8, options=0x1bb57c68) at source/program.c:712 en fait il s'agit du ``nom'' des statements : le champ loop->statement->body. et bien pour que ta librairie marche, il faut qu'il soit initialisé et désallouable par un free. ce ne peut être un champ statique style "statement" comme je l'avais mis au début. c'est un détail mais qui peut être piégeur. point différent : le champ 'name' des options, il semble important de le définir avant de faire un print, mais celui là pas forcément avec un malloc car il n'est pas désalloué par un quelconque free de cloog_options_free. ces petits détails pris en compte, ça à l'air de mieux marcher. a+ ,fb ---------------------------------------------------------------------------- >Salut Fabrice, >> il faut que tu arrêtes d'allonger ma pile de choses à m'occuper >> 'rapidement' sinon j'en ai pour jusqu'en 2006 ! allez, une dernière, pareil c'est pas urgent, stocke, j'ai pas besoin de réponse pour l'instant. en fait lorsque tu as pas de paramètres à ton problème, tu passes le polyhèdre : 1 2 1 1 comme dans l'exemple ci-dessous : # ---------------------------------------------------------------------- # language: C c # parameters {m, n | 4<=m<=n} 1 2 1 1 0 1 # Number of statements 1 # {i, j | 1<=i<=n 1<=j<=m} 4 4 # i j m n 1 1 1 0 5 1 -1 0 5 1 0 1 5 1 0 -1 5 0 0 0 0 0 # Scattering functions # ---------------------------------------------------------------------- qui donne parfaitement : /* Generated from a.cloog by CLooG v0.12.2 64 bits in 0.00s. */ for (i=-5;i<=5;i++) { for (j=-5;j<=5;j++) { S1 ; } } par contre, si je décide de lui passer à la place : 1 2 0 1 là il ne m'afficher plus de solution. c'est bizarre ou c'est normal ? en fait le polyhèdre ci dessus est intéressant, car il correspond au polyhèdre retourné par la fonction Empty_Polyhedron de la polylib. cprog->context=Empty_Polyhedron(0); ,fb