For the testcase: /home/razya/mainline_new_3/gcc/gcc/testsuite/gcc.c-torture/execute/20021111-1.c, when using fipa-cp, a new vfersion is created for aim_callhandler(). the static variable is copied twice into the unexpanded_var_list of the versioned function. Looking at this test, even without enabling ipa-cp, the local variables multiplies after inlining.(as shown in the dump below) For example : in 20021111-1.c.t23.alias1:
aim_callhandler (sess, conn, family, type) { int D.1449; int sess; int conn; short unsigned int family; short unsigned int type; static int i = 0; int D.1457; int D.1456; int i.0; int D.1458; int D.1449; int D.1435; int sess; int conn; short unsigned int family; short unsigned int type; static int i = 0; int D.1443; int D.1442; int i.0; int D.1444; int D.1435; int D.1421; int sess; int conn; short unsigned int family; short unsigned int type; static int i = 0; int D.1429; int D.1428; int i.0; int D.1430; int D.1421; int D.1407; int sess; int conn; short unsigned int family; short unsigned int type; static int i = 0; int D.1415; int D.1414; int i.0; -- Summary: duplication of local variables after versioning/inlining Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: razya at il dot ibm dot com GCC build triplet: powerpc-suse-linux GCC host triplet: powerpc-suse-linux GCC target triplet: powerpc-suse-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24888