http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50053
--- Comment #10 from gee <jojelino at gmail dot com> 2011-12-08 19:15:47 UTC ---
(In reply to comment #9)
whereas with -findirect-dispatch, initializer code isn't omitted.
;; Function () (_ZN3gnu3gcj7convert10Input_UTF8C1Ev, funcdef_no=47,
decl_uid=3185, cgraph_uid=94)
() (struct gnu.gcj.convert.Input_UTF8 * this)
{
int D.9476;
struct java.lang.Object * D.3210;
int #slot#2#4;
struct java.lang.Object * D.3207;
void * #ref#1#2;
struct java.lang.Object * D.3203;
void * #ref#0#0;
int * D.9474;
sizetype D.9473;
int D.9472;
void * _ref_1_2.1045;
int * iftmp.1044;
int * D.9467;
sizetype D.9466;
int D.9465;
void * _ref_1_2.1043;
int * iftmp.1042;
void gnu.gcj.convert.BytesToUnicode::<T12d> (struct
gnu.gcj.convert.BytesToUnicode *) * D.9460;
void * D.9459;
void * _ref_1_2.1041;
<bb 2>:
D.3203_2 = this_1(D);
#ref#1#2_3 = D.3203_2;
_ref_1_2.1041_4 = #ref#1#2_3;
D.9459_5 = _atable_gnu_gcj_convert_Input_UTF8[1];
D.9460_6 = (void gnu.gcj.convert.BytesToUnicode::<T12d> (struct
gnu.gcj.convert.BytesToUnicode *) *) D.9459_5;
D.9460_6 (_ref_1_2.1041_4);
D.3207_7 = this_1(D);
#ref#1#2_8 = D.3207_7;
#slot#2#4_9 = 0;
_ref_1_2.1043_10 = #ref#1#2_8;
if (_ref_1_2.1043_10 == 0B)
goto <bb 3>;
else
goto <bb 4>;
<bb 3>:
_Jv_ThrowNullPointerException ();
<bb 4>:
iftmp.1042_11 = _ref_1_2.1043_10;
D.9465_12 = _otable_gnu_gcj_convert_Input_UTF8[1];
D.9466_13 = (sizetype) D.9465_12;
D.9467_14 = iftmp.1042_11 + D.9466_13;
*D.9467_14 = #slot#2#4_9;
D.3210_15 = this_1(D);
#ref#1#2_16 = D.3210_15;
#slot#2#4_17 = 0;
_ref_1_2.1045_18 = #ref#1#2_16;
if (_ref_1_2.1045_18 == 0B)
goto <bb 5>;
else
goto <bb 6>;
<bb 5>:
_Jv_ThrowNullPointerException ();
<bb 6>:
iftmp.1044_19 = _ref_1_2.1045_18;
D.9476_20 = _otable_gnu_gcj_convert_Input_UTF8[2];
D.9472_21 = D.9476_20;
D.9473_22 = (sizetype) D.9472_21;
D.9474_23 = iftmp.1044_19 + D.9473_22;
*D.9474_23 = #slot#2#4_17;
<L4>:
return;
}