Program: 50085
Project: 50085
Buggy source:
private void evalExprNew(ICPPASTNewExpression expr,List<MExpression> ret) throws DOMException {
  if (expr.isArrayAllocation() && !TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.OBJECT_POINTER)) {
    MNewArrayExpression ptr=new MNewArrayExpression();
    for (    IASTExpression arraySize : expr.getNewTypeIdArrayExpressions())     ptr.sizes.add(eval1Expr(arraySize));
    ptr.type=ctx.typeMngr.cppToJavaType(expr.getExpressionType(),TypeType.IMPLEMENTATION);
    ret.add(ptr);
  }
 else   if (expr.isArrayAllocation() && TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.OBJECT_POINTER)) {
    MNewArrayExpressionObject ptr=new MNewArrayExpressionObject();
    for (    IASTExpression arraySize : expr.getNewTypeIdArrayExpressions())     ptr.sizes.add(eval1Expr(arraySize));
    ptr.type=ctx.typeMngr.cppToJavaType(expr.getExpressionType(),TypeType.IMPLEMENTATION);
    ret.add(ptr);
  }
 else   if (TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.OBJECT_POINTER)) {
    MNewExpressionObject ptr=new MNewExpressionObject();
    ptr.type=ctx.typeMngr.cppToJavaType(expr.getExpressionType(),TypeType.RAW);
    MValueOfExpressionPtr ptrExpr=new MValueOfExpressionPtr();
    ptrExpr.type="String_Node_Str";
    ptrExpr.operand=ptr;
    ret.add(ptrExpr);
  }
 else   if (TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.BASIC_POINTER) && TypeManager.getPointerIndirectionCount(expr.getExpressionType()) == 1) {
    ret.add(ctx.initMngr.eval1Init(expr.getInitializer(),TypeManager.getPointerBaseType(expr.getExpressionType()),null));
  }
 else   if (TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.BASIC_POINTER)) {
  }
}

Fixed version (ground truth):
private void evalExprNew(ICPPASTNewExpression expr,List<MExpression> ret) throws DOMException {
  if (expr.isArrayAllocation() && !TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.OBJECT_POINTER)) {
    MNewArrayExpression ptr=new MNewArrayExpression();
    for (    IASTExpression arraySize : expr.getNewTypeIdArrayExpressions())     ptr.sizes.add(eval1Expr(arraySize));
    ptr.type=ctx.typeMngr.cppToJavaType(expr.getExpressionType(),TypeType.IMPLEMENTATION);
    ret.add(ptr);
  }
 else   if (expr.isArrayAllocation() && TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.OBJECT_POINTER)) {
    MNewArrayExpressionObject ptr=new MNewArrayExpressionObject();
    for (    IASTExpression arraySize : expr.getNewTypeIdArrayExpressions())     ptr.sizes.add(eval1Expr(arraySize));
    ptr.type=ctx.typeMngr.cppToJavaType(expr.getExpressionType(),TypeType.IMPLEMENTATION);
    ret.add(ptr);
  }
 else   if (TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.OBJECT_POINTER)) {
    MNewExpressionObject ptr=new MNewExpressionObject();
    ptr.type=ctx.typeMngr.cppToJavaType(expr.getExpressionType(),TypeType.RAW);
    MValueOfExpressionPtr ptrExpr=new MValueOfExpressionPtr();
    ptrExpr.type="String_Node_Str";
    ptrExpr.operand=ptr;
    ret.add(ptrExpr);
  }
 else   if (TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.BASIC_POINTER) && TypeManager.getPointerIndirectionCount(expr.getExpressionType()) == 1) {
    ret.add(ctx.initMngr.eval1Init(expr.getInitializer(),TypeManager.getPointerBaseType(expr.getExpressionType()),null,InitType.WRAPPED));
  }
 else   if (TypeManager.isOneOf(expr.getExpressionType(),TypeEnum.BASIC_POINTER)) {
  }
}