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 prciser dans la doc pour viter des dboires. je te passe les
dtails 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
dsallouable par un free. ce ne peut tre un champ statique style
"statement" comme je l'avais mis au dbut. c'est un dtail mais qui peut
tre pigeur.

point diffrent : le champ 'name' des options, il semble important de le
dfinir avant de faire un print, mais celui l pas forcment avec un malloc
car il n'est pas dsallou par un quelconque free de cloog_options_free.

ces petits dtails pris en compte, a  l'air de mieux marcher.
a+
,fb


----------------------------------------------------------------------------
>Salut Fabrice,
>> il faut que tu arrtes d'allonger ma pile de choses  m'occuper 
>> 'rapidement' sinon j'en ai pour jusqu'en 2006 !


allez, une dernire, pareil c'est pas urgent, stocke, j'ai pas besoin de
rponse pour l'instant. en fait lorsque tu as pas de paramtres  ton
problme, tu passes le polyhdre :

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 dcide 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 polyhdre ci dessus est intressant, car il correspond au
polyhdre retourn par la fonction Empty_Polyhedron de la polylib.

cprog->context=Empty_Polyhedron(0);

,fb


