false assertion make_decl_rtl, at varasm.c:1273

Kouadri Mostéfaoui Abdellah Medjadji abdellah.kouadri_mostefaoui@it-sudparis.eu
Fri May 22 17:37:00 GMT 2009


Hi,


I'm working on a new  transformation pass.
During this pass  the whole TREE of a function is parsed using tree
walker, and code is inserted  (using  BIND_EXPRs).
The problem is that i'm having a false assertion 

"at make_decl_rtl, at varasm.c:1273" 

This is the line N°1273 of varasm.c
gcc_assert (TREE_CODE (decl) != VAR_DECL
	      || TREE_STATIC (decl)
	      || TREE_PUBLIC (decl)
	      || DECL_EXTERNAL (decl)
	      || DECL_REGISTER (decl));



The problem appears only when transformations are made in functions
different than main(). Also, the assertion fails when  make_decl_rtl is
called with local variables  already declared in the function (and not
artificial variables itroduced by the pass).

Can some one help me to figure out what  this function stands for? and
how i can solve my problem ? 

Thanks in advance.
Abdellah.




 



More information about the Gcc mailing list