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"
