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";

Reply via email to