On 3/14/07, Sunzir Deepur <[EMAIL PROTECTED]> wrote:
Hello,
I have used -da and -dv to produce vcg files of the CFG of this simple program:
int main(int argc, char**argv)
{
if(argc)
printf("positive\n");
else
printf("zero\n");
return 0;
}
I have expected to get a CFG as follows:
-----------
| BB 0 |
-----------
/ \
----------- -----------
| BB 1 | | BB 2 |
----------- -----------
\ /
-----------
| END |
-----------
But instead, I was surprised to get this CFG:
-----------
| BB 0 |
-----------
/ \
----------- -----------
| BB 1 | ------------> | BB 2 |
----------- -----------
\ /
-----------
| END |
-----------
as if one case of the "if" can lead to the other !
Can someone please explain to me why it is so ?
I am attaching the VCG representation, the VCG text file, and the original
test program..
Thank You
sunzir
I don't know what kind of vcg viewer/converter you're using,
but set it to ignore class 3 edges - you'll get what you expected.
--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com"