cvsuser 05/03/31 01:43:54
Modified: imcc pbc.c
Log:
fix #34617
Revision Changes Path
1.117 +15 -12 parrot/imcc/pbc.c
Index: pbc.c
===================================================================
RCS file: /cvs/public/parrot/imcc/pbc.c,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -r1.116 -r1.117
--- pbc.c 30 Mar 2005 16:05:31 -0000 1.116
+++ pbc.c 31 Mar 2005 09:43:53 -0000 1.117
@@ -476,19 +476,22 @@
lab = find_global_label(bsr->name, s, &pc, &s1);
/*
* if failed change opcode:
- * set_p_pc => find_name p_sc
- * the the sub is a multi too
+ * set_p_pc => find_name p_sc
+ * if a sub label is found
+ * convert to find_name, if the sub is a multi
*/
- assert(s1->unit);
- if (lab && (s1->unit->type & IMC_PCCSUB)) {
- ins = s1->unit->instructions;
- assert(ins);
- r1 = ins->r[1];
- assert(r1);
- pcc_sub = r1->pcc_sub;
- assert(pcc_sub);
- if (pcc_sub->nmulti)
- lab = NULL;
+ if (lab) {
+ assert(s1->unit);
+ if (s1->unit->type & IMC_PCCSUB) {
+ ins = s1->unit->instructions;
+ assert(ins);
+ r1 = ins->r[1];
+ assert(r1);
+ pcc_sub = r1->pcc_sub;
+ assert(pcc_sub);
+ if (pcc_sub->nmulti)
+ lab = NULL;
+ }
}
if (!lab) {
int op, col;