[Termtools] C category: x = x++ statements
Akihisa Yamada
akihisa.yamada at uibk.ac.at
Tue Jul 21 15:04:22 CEST 2015
Dear Ton-Chanh,
> According to this, I think we need to change
> the expected results
is this a request for the coming competition?
To me, it feels strange to change "Comment: terminating" line, which
seems to reflect the author's intention, rather than the apparent
typo "z = z++;".
May I leave them unchanged this time, since your request should not
affect the competition result?
Best regards,
Akihisa
On 2015/07/21 9:21, Ton-Chanh Le wrote:
> Dear Andreas Gebhardt,
>
> Thank you very much for your clarification.
>
> Your interpretation of x = x++
>
> x_ = x;
> x = x+1;
> x = x_;
>
> is exactly the thing we received from cil.
>
> According to this, I think we need to change
> the expected results of
>
> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex3.08_true-termination.c
> (non-terminating when x>y & y>x+z)
>
> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex4.01_true-termination.c
> (non-terminating when x+y=0 & x+z=0 & x<=n)
>
>
>
> Best Regards,
>
> Le Ton Chanh
> Email: chanhle at comp.nus.edu.sg <http://comp.nus.edu.sg>
>
> On Tue, Jul 21, 2015 at 2:14 PM, Andreas Gebhardt
> <andreasgebhardt at web.de <mailto:andreasgebhardt at web.de>> wrote:
>
> Dear Ton-Chanh Le,
>
> We have a problem with the x = x++ statements,
> which appear in the examples
>
> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex3.08_true-termination.c
>
>
> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex4.01_true-termination.c
>
> >
>
> [...]
>
> >
>
> Could we use x++ instead of x = x++ in those examples?
>
>
> these two statements (together with a ';') are not interchangeable
> by default, the first statement
>
> x++;
>
> increments the value of `x` and returns the value of `x` before it
> was incremented. The value which the statement returns is not used.
> But the second one uses the return value of `x++`
>
> x = x++;
>
> which is the value of `x` before it was incremented. So the value of
> `x` right before and right after the statement `x = x++;` does not
> change.
>
> Without using the postincrement operator (`x_` a fresh variable of
> same type as `x`)
>
> x_ = x;
> x = x+1;
> x = x_;
>
>
> Best Regards,
> Andreas
>
> _______________________________________________
> Termtools mailing list
> Termtools at lists.lri.fr <mailto:Termtools at lists.lri.fr>
> http://lists.lri.fr/cgi-bin/mailman/listinfo/termtools
>
>
>
>
> _______________________________________________
> Termtools mailing list
> Termtools at lists.lri.fr
> http://lists.lri.fr/cgi-bin/mailman/listinfo/termtools
>
--
Akihisa Yamada, Ph.D.
Computational Logic Group, Institute of Computer Science,
University of Innsbruck
http://cl-informatik.uibk.ac.at/~ayamada/
More information about the Termtools
mailing list