------- Comment #14 from dberlin at gcc dot gnu dot org 2006-10-24 18:31 ------- (In reply to comment #13) > We now get > > <bb 2>: > # param_2 = V_MAY_DEF <param_1>; > param.f1 = 0; > # param_6 = V_MAY_DEF <param_2>; > # SFT.0_7 = V_MAY_DEF <SFT.0_3>; > # NONLOCAL.6_8 = V_MAY_DEF <NONLOCAL.6_5>; > # NONLOCAL.12_13 = V_MAY_DEF <NONLOCAL.12_12>; > # NONLOCAL.18_16 = V_MAY_DEF <NONLOCAL.18_15>; > # NONLOCAL.24_19 = V_MAY_DEF <NONLOCAL.24_18>; > # NONLOCAL.30_22 = V_MAY_DEF <NONLOCAL.30_21>; > # NONLOCAL.36_25 = V_MAY_DEF <NONLOCAL.36_24>; > __builtin_memcpy (&local, ¶m, 9); > # VUSE <SFT.0_7>; > D.2668_4 = local.f1; > if (D.2668_4 != 0) goto <L0>; else goto <L1>; > > <L0>:; > # param_9 = V_MAY_DEF <param_6>; > # SFT.0_10 = V_MAY_DEF <SFT.0_7>; > # NONLOCAL.6_11 = V_MAY_DEF <NONLOCAL.6_8>; > # NONLOCAL.12_14 = V_MAY_DEF <NONLOCAL.12_13>; > # NONLOCAL.18_17 = V_MAY_DEF <NONLOCAL.18_16>; > # NONLOCAL.24_20 = V_MAY_DEF <NONLOCAL.24_19>; > # NONLOCAL.30_23 = V_MAY_DEF <NONLOCAL.30_22>; > # NONLOCAL.36_26 = V_MAY_DEF <NONLOCAL.36_25>; > link_error (); > > <L1>:; > return; >
Uh, there should only ever be one non-local var per function, and referenced vars should be reset at the end of each function so why do you have multiple NONLOCAL's here? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13954