From: Pat Eyler Date: 2006-04-25T05:47:54+09:00 Subject: Another Coverity Defect this one is in ruby/regcomp.c (there are three more 'deadcode' errors in the scan). 1382 case N_BACKREF: 1383 { 1384 int i; 1385 BackrefNode* br = &(NBACKREF(node)); 1386 1387 if (br->back_num == 1) { 1388 n = br->back_static[0]; 1389 if (IS_IGNORECASE(reg->options)) { 1390 r = add_opcode(reg, OP_BACKREFN_IC); 1391 if (r) return r; 1392 r = add_mem_num(reg, n); 1393 } 1394 else { 1395 switch (n) { 1396 case 1: r = add_opcode(reg, OP_BACKREF1); break; 1397 case 2: r = add_opcode(reg, OP_BACKREF2); break; 1398 case 3: r = add_opcode(reg, OP_BACKREF3); break; 1399 default: 1400 r = add_opcode(reg, OP_BACKREFN); 1401 if (r) return r; 1402 r = add_mem_num(reg, n); 1403 break; 1404 } 1405 } 1406 } 1407 else { 1408 int* p; 1409 1410 if (IS_IGNORECASE(reg->options)) { 1411 add_opcode(reg, OP_BACKREF_MULTI_IC); 1412 } 1413 else { 1414 add_opcode(reg, OP_BACKREF_MULTI); 1415 } 1416 Event dead_error_line: Cannot reach this line of code Event dead_error_condition: On this path, the condition "r != 0" could not be true Also see events: [dead_error_condition][assignment][const] 1417 if (r) return r; 1418 add_length(reg, br->back_num); 1419 if (r) return r; 1420 p = BACKREFS_P(br); 1421 for (i = br->back_num - 1; i >= 0; i--) { 1422 r = add_mem_num(reg, p[i]); 1423 if (r) return r; 1424 } 1425 } 1426 } 1427 break;