On Fri, Sep 10, 2010 at 5:39 PM, Paulo J. Matos <pocma...@gmail.com> wrote: > Hello, > > On my frontend pass, I am dealing with basic blocks and I am for: > ,---- > | int f(int n) > | { > | switch(n) > | { > | case 0: f1("0"); break; > | case 500: f2("500"); break; > | case 1000: f3("1000"); break; > | default: d(); break; > | } > | } > `---- > > transforming it into: > ,---- > | int f(int n) > | { > | if(n < 500) > | if(n == 0) > | f1("0"); > | else > | goto def; > | else > | if(n == 500) > | f2("500"); > | else > | if(n == 1000) > | f3("1000"); > | else > | goto def; > | > | return; > | > | def: > | d(); > | return; > | } > `---- > > The problem with this is that it contains nested ifs. > Is there a way for me to insert this tree and ask GCC to rebuild the CFG > or I need to build the correct CFG manually?
You need to build it manually. Richard. > Cheers, > -- > PMatos > >