Commit Diff


commit - 66f6e2b651124387f83b9af17104a79d6d93f67b
commit + 002d2f2610604626d672fd45eb79d75059028da3
blob - b8286dc7298046dd811a10505174a443eb489544
blob + 0dabd4f0f331911edc02252d988d2bd86164770b
--- src/libregexp/regcomp.c
+++ src/libregexp/regcomp.c
@@ -261,18 +261,18 @@ optimize(Reprog *pp)
 		case STAR:
 		case PLUS:
 		case QUEST:
-			*(char**)(void*)&inst->u1.right += diff;
+			inst->u1.right = (void*)((char*)inst->u1.right + diff);
 			break;
 		case CCLASS:
 		case NCCLASS:
-			*(char**)(void*)&inst->u1.right += diff;
+			inst->u1.right = (void*)((char*)inst->u1.right + diff);
 			cl = inst->u1.cp;
-			*(char**)(void*)&cl->end += diff;
+			cl->end = (void*)((char*)cl->end + diff);
 			break;
 		}
-		*(char**)(void*)&inst->u2.left += diff;
+		inst->u2.left = (void*)((char*)inst->u2.left + diff);
 	}
-	*(char**)(void*)&npp->startinst += diff;
+	npp->startinst = (void*)((char*)npp->startinst + diff);
 	return npp;
 }