Program: 99650
Project: 99650
Buggy source:
protected void processCallingConstraints(CGNode caller,SSAAbstractInvokeInstruction instruction,CGNode target,InstanceKey[][] constParams,PointerKey uniqueCatchKey){
  int nUses=instruction.getNumberOfParameters();
  int nExpected=target.getMethod().getNumberOfParameters();
  if (nUses != nExpected) {
    return;
  }
  for (int i=0; i < instruction.getNumberOfParameters(); i++) {
    if (target.getMethod().getParameterType(i).isReferenceType()) {
      PointerKey formal=getTargetPointerKey(target,i);
      if (constParams != null && constParams[i] != null) {
        InstanceKey[] ik=constParams[i];
        for (int j=0; j < ik.length; j++) {
          system.newConstraint(formal,ik[j]);
        }
      }
 else {
        if (instruction.getUse(i) < 0) {
          Assertions.UNREACHABLE("String_Node_Str" + instruction + "String_Node_Str"+ caller);
        }
        PointerKey actual=getPointerKeyForLocal(caller,instruction.getUse(i));
        if (formal instanceof FilteredPointerKey) {
          system.newConstraint(formal,filterOperator,actual);
        }
 else {
          system.newConstraint(formal,assignOperator,actual);
        }
      }
    }
  }
  if (instruction.hasDef() && instruction.getDeclaredResultType().isReferenceType()) {
    PointerKey result=getPointerKeyForLocal(caller,instruction.getDef());
    PointerKey ret=getPointerKeyForReturnValue(target);
    system.newConstraint(result,assignOperator,ret);
  }
  PointerKey e=getPointerKeyForLocal(caller,instruction.getException());
  PointerKey er=getPointerKeyForExceptionalReturnValue(target);
  if (SHORT_CIRCUIT_SINGLE_USES && uniqueCatchKey != null) {
    system.newConstraint(uniqueCatchKey,assignOperator,er);
  }
 else {
    system.newConstraint(e,assignOperator,er);
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") protected void processCallingConstraints(CGNode caller,SSAAbstractInvokeInstruction instruction,CGNode target,InstanceKey[][] constParams,PointerKey uniqueCatchKey){
  int nUses=instruction.getNumberOfParameters();
  int nExpected=target.getMethod().getNumberOfParameters();
  if (nUses != nExpected) {
    return;
  }
  for (int i=0; i < instruction.getNumberOfParameters(); i++) {
    if (target.getMethod().getParameterType(i).isReferenceType()) {
      PointerKey formal=getTargetPointerKey(target,i);
      if (constParams != null && constParams[i] != null) {
        InstanceKey[] ik=constParams[i];
        for (int j=0; j < ik.length; j++) {
          system.newConstraint(formal,ik[j]);
        }
      }
 else {
        if (instruction.getUse(i) < 0) {
          Assertions.UNREACHABLE("String_Node_Str" + instruction + "String_Node_Str"+ caller);
        }
        PointerKey actual=getPointerKeyForLocal(caller,instruction.getUse(i));
        if (formal instanceof FilteredPointerKey) {
          system.newConstraint(formal,filterOperator,actual);
        }
 else {
          system.newConstraint(formal,assignOperator,actual);
        }
      }
    }
  }
  if (instruction.hasDef() && instruction.getDeclaredResultType().isReferenceType()) {
    PointerKey result=getPointerKeyForLocal(caller,instruction.getDef());
    PointerKey ret=getPointerKeyForReturnValue(target);
    system.newConstraint(result,assignOperator,ret);
  }
  PointerKey e=getPointerKeyForLocal(caller,instruction.getException());
  PointerKey er=getPointerKeyForExceptionalReturnValue(target);
  if (SHORT_CIRCUIT_SINGLE_USES && uniqueCatchKey != null) {
    system.newConstraint(uniqueCatchKey,assignOperator,er);
  }
 else {
    system.newConstraint(e,assignOperator,er);
  }
}