Local variables
Ian Lance Taylor
iant@google.com
Wed Jun 29 06:40:00 GMT 2011
Abdul Wahid Memon <engrwahidmemon@gmail.com> writes:
> I have another question related to this. Lets suppose we have declared
> a local integer variable and we assigned some integer to it using
> gimple_build_assign statement (providing an ssa name). And after this,
> I want to modify the value of same variable. Should I create an other
> assignment statement or is there any other way to it?
>
> I have already tested it with creating an other assignment statement
> by providing the same ssa name but it gives me an error:
> hello.c:3:5: error: SSA_NAME_DEF_STMT is wrong
> Expected definition statement:
> b_4 = 1234;
>
> Actual definition statement:
> b_4 = 5555;
> hello.c:3:5: internal compiler error: verify_ssa failed
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
Your pass is evidently while the tree is in SSA mode. In SSA mode every
variable is only assigned to once (see
http://en.wikipedia.org/wiki/Static_single_assignment_form). So you
can't modify a local variable.
If you don't want to deal with SSA mode you should ensure that your pass
runs before pass_build_ssa.
Ian
More information about the Gcc-help
mailing list