📄 20020304-1.c
字号:
/* In 3.0, this test case (extracted from Bigloo) crashes the compiler in bb-reorder.c. This is a regression from 2.95, already fixed in 3.1. Original bug report is c/5830 by Manuel Serrano <Manuel.Serrano@inria.fr>. */typedef union scmobj { struct pair { union scmobj *car; union scmobj *cdr; } pair_t; struct vector { long header; int length; union scmobj *obj0; } vector_t;} *obj_t;extern obj_t create_vector (int);extern obj_t make_pair (obj_t, obj_t);extern long bgl_list_length (obj_t);extern int BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (obj_t, obj_t);extern obj_t BGl_evcompilezd2lambdazd2zz__evcompilez00 (obj_t BgL_formalsz00_39, obj_t BgL_bodyz00_40, obj_t BgL_wherez00_41, obj_t BgL_namedzf3zf3_42, obj_t BgL_locz00_43);obj_tBGl_evcompilezd2lambdazd2zz__evcompilez00 (obj_t BgL_formalsz00_39, obj_t BgL_bodyz00_40, obj_t BgL_wherez00_41, obj_t BgL_namedzf3zf3_42, obj_t BgL_locz00_43){ if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (BgL_formalsz00_39, ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { BgL_tagzd21966zd2_943: if ((BgL_namedzf3zf3_42 != ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) { obj_t BgL_v1042z00_998; { int BgL_auxz00_4066; BgL_auxz00_4066 = (int) (((long) 3)); BgL_v1042z00_998 = create_vector (BgL_auxz00_4066); } { obj_t BgL_arg1586z00_1000; BgL_arg1586z00_1000 = make_pair (BgL_wherez00_41, BgL_bodyz00_40); { int BgL_auxz00_4070; BgL_auxz00_4070 = (int) (((long) 2)); ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4070] = BgL_arg1586z00_1000, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } } { int BgL_auxz00_4073; BgL_auxz00_4073 = (int) (((long) 1)); ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4073] = BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { obj_t BgL_auxz00_4078; int BgL_auxz00_4076; { long BgL_auxz00_4079; { long BgL_auxz00_4080; BgL_auxz00_4080 = bgl_list_length (BgL_formalsz00_39); BgL_auxz00_4079 = (BgL_auxz00_4080 + ((long) 37)); } BgL_auxz00_4078 = (obj_t) ((long) (((long) (BgL_auxz00_4079) << 2) | 1)); } BgL_auxz00_4076 = (int) (((long) 0)); ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4076] = BgL_auxz00_4078, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } return BgL_v1042z00_998; } else { obj_t BgL_v1043z00_1005; { int BgL_auxz00_4085; BgL_auxz00_4085 = (int) (((long) 3)); BgL_v1043z00_1005 = create_vector (BgL_auxz00_4085); } { int BgL_auxz00_4088; BgL_auxz00_4088 = (int) (((long) 2)); ((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4088] = BgL_bodyz00_40, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { int BgL_auxz00_4091; BgL_auxz00_4091 = (int) (((long) 1)); ((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4091] = BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { obj_t BgL_auxz00_4096; int BgL_auxz00_4094; { long BgL_auxz00_4097; { long BgL_auxz00_4098; BgL_auxz00_4098 = bgl_list_length (BgL_formalsz00_39); BgL_auxz00_4097 = (BgL_auxz00_4098 + ((long) 42)); } BgL_auxz00_4096 = (obj_t) ((long) (((long) (BgL_auxz00_4097) << 2) | 1)); } BgL_auxz00_4094 = (int) (((long) 0)); ((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4094] = BgL_auxz00_4096, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } return BgL_v1043z00_1005; } } else { if (((((long) BgL_formalsz00_39) & ((1 << 2) - 1)) == 3)) { if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).cdr), ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { goto BgL_tagzd21966zd2_943; } else { obj_t BgL_cdrzd21979zd2_953; BgL_cdrzd21979zd2_953 = ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).cdr); if (((((long) BgL_cdrzd21979zd2_953) & ((1 << 2) - 1)) == 3)) { if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).cdr), ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { goto BgL_tagzd21966zd2_943; } else { obj_t BgL_cdrzd21986zd2_956; BgL_cdrzd21986zd2_956 = ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).cdr); if (((((long) BgL_cdrzd21986zd2_956) & ((1 << 2) - 1)) == 3)) { if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (((((obj_t) ((long) BgL_cdrzd21986zd2_956 - 3))->pair_t). cdr), ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { goto BgL_tagzd21966zd2_943; } else { obj_t BgL_cdrzd21994zd2_959; { obj_t BgL_auxz00_4120; BgL_auxz00_4120 = ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t). cdr); BgL_cdrzd21994zd2_959 = ((((obj_t) ((long) BgL_auxz00_4120 - 3))->pair_t).cdr); } if (((((long) BgL_cdrzd21994zd2_959) & ((1 << 2) - 1)) == 3)) { if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (((((obj_t) ((long) BgL_cdrzd21994zd2_959 - 3))-> pair_t).cdr), ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { goto BgL_tagzd21966zd2_943; } else { int BgL_testz00_4128; { obj_t BgL_auxz00_4129; BgL_auxz00_4129 = ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t). car); BgL_testz00_4128 = ((((long) BgL_auxz00_4129) & ((1 << 2) - 1)) == 3); } if (BgL_testz00_4128) { BgL_tagzd21971zd2_948: if ((BgL_namedzf3zf3_42 != ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) { obj_t BgL_v1052z00_1026; { int BgL_auxz00_4134; BgL_auxz00_4134 = (int) (((long) 3)); BgL_v1052z00_1026 = create_vector (BgL_auxz00_4134); } { obj_t BgL_arg1606z00_1028; { obj_t BgL_v1053z00_1029; { int BgL_auxz00_4137; BgL_auxz00_4137 = (int) (((long) 3)); BgL_v1053z00_1029 = create_vector (BgL_auxz00_4137); } { int BgL_auxz00_4140; BgL_auxz00_4140 = (int) (((long) 2)); ((& (((obj_t) (BgL_v1053z00_1029))->vector_t. obj0))[BgL_auxz00_4140] = BgL_formalsz00_39, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { int BgL_auxz00_4143; BgL_auxz00_4143 = (int) (((long) 1)); ((& (((obj_t) (BgL_v1053z00_1029))->vector_t. obj0))[BgL_auxz00_4143] = BgL_bodyz00_40, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { int BgL_auxz00_4146; BgL_auxz00_4146 = (int) (((long) 0)); ((& (((obj_t) (BgL_v1053z00_1029))->vector_t. obj0))[BgL_auxz00_4146] = BgL_wherez00_41, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } BgL_arg1606z00_1028 = BgL_v1053z00_1029; } { int BgL_auxz00_4149; BgL_auxz00_4149 = (int) (((long) 2)); ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0)) [BgL_auxz00_4149] = BgL_arg1606z00_1028, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } } { int BgL_auxz00_4152; BgL_auxz00_4152 = (int) (((long) 1)); ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0)) [BgL_auxz00_4152] = BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { obj_t BgL_auxz00_4157; int BgL_auxz00_4155; BgL_auxz00_4157 = (obj_t) ((long) (((long) (((long) 55)) << 2) | 1)); BgL_auxz00_4155 = (int) (((long) 0)); ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0)) [BgL_auxz00_4155] = BgL_auxz00_4157, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } return BgL_v1052z00_1026; } else { obj_t BgL_v1054z00_1030; { int BgL_auxz00_4160; BgL_auxz00_4160 = (int) (((long) 3)); BgL_v1054z00_1030 = create_vector (BgL_auxz00_4160); } { obj_t BgL_arg1608z00_1032; BgL_arg1608z00_1032 = make_pair (BgL_bodyz00_40, BgL_formalsz00_39); { int BgL_auxz00_4164; BgL_auxz00_4164 = (int) (((long) 2)); ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0)) [BgL_auxz00_4164] = BgL_arg1608z00_1032, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } } { int BgL_auxz00_4167; BgL_auxz00_4167 = (int) (((long) 1)); ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0)) [BgL_auxz00_4167] = BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } { obj_t BgL_auxz00_4172; int BgL_auxz00_4170; BgL_auxz00_4172 = (obj_t) ((long) (((long) (((long) 56)) << 2) | 1)); BgL_auxz00_4170 = (int) (((long) 0)); ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0)) [BgL_auxz00_4170] = BgL_auxz00_4172, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); } return BgL_v1054z00_1030; } } else { int BgL_testz00_4175; { obj_t BgL_auxz00_4176; { obj_t BgL_auxz00_4177; BgL_auxz00_4177 = ((((obj_t) ((long) BgL_formalsz00_39 - 3))-> pair_t).cdr); BgL_auxz00_4176 = ((((obj_t) ((long) BgL_auxz00_4177 - 3))->pair_t). car); } BgL_testz00_4175 = ((((long) BgL_auxz00_4176) & ((1 << 2) - 1)) == 3); } if (BgL_testz00_4175) { goto BgL_tagzd21971zd2_948; } else { int BgL_testz00_4181; { obj_t BgL_auxz00_4182; { obj_t BgL_auxz00_4183; { obj_t BgL_auxz00_4184; BgL_auxz00_4184 = ((((obj_t) ((long) BgL_formalsz00_39 - 3))-> pair_t).cdr); BgL_auxz00_4183 = ((((obj_t) ((long) BgL_auxz00_4184 - 3))-> pair_t).cdr); } BgL_auxz00_4182 = ((((obj_t) ((long) BgL_auxz00_4183 - 3))-> pair_t).car); } BgL_testz00_4181 = ((((long) BgL_auxz00_4182) & ((1 << 2) - 1)) == 3); } if (BgL_testz00_4181) { goto BgL_tagzd21971zd2_948; } else { goto BgL_tagzd21971zd2_948; } } } } } else { int BgL_testz00_4189; { obj_t BgL_auxz00_4190; BgL_auxz00_4190 = ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t). car); BgL_testz00_4189 = ((((long) BgL_auxz00_4190) & ((1 << 2) - 1)) == 3); } if (BgL_testz00_4189) { goto BgL_tagzd21971zd2_948; } else { int BgL_testz00_4193; { obj_t BgL_auxz00_4194; { obj_t BgL_auxz00_4195; BgL_auxz00_4195 = ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t). cdr); BgL_auxz00_4194 = ((((obj_t) ((long) BgL_auxz00_4195 - 3))->pair_t). car); } BgL_testz00_4193 = ((((long) BgL_auxz00_4194) & ((1 << 2) - 1)) == 3); } if (BgL_testz00_4193) { goto BgL_tagzd21971zd2_948; } else { int BgL_testz00_4199; { obj_t BgL_auxz00_4200; { obj_t BgL_auxz00_4201;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -