Cómo deshabilitar una advertencia en Delphi sobre "el valor de retorno ... podría ser indefinido"?

StackOverflow https://stackoverflow.com/questions/61418

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo una función que me da el siguiente aviso:

[DCC Advertencia] nombre de archivo.pas(6939):W1035 valor de Retorno de la función 'función' podría ser indefinido

La función, sin embargo, es limpio, pequeño, y tiene un conocido, se esperaba, el valor de retorno.La primera instrucción de la función es:

Result := '';

y no hay ninguna variable local o un parámetro llamado Result cualquiera de los dos.

Hay algún tipo de pragma-al igual que la directiva puedo rodean este método para eliminar esta advertencia?Este es Delphi 2007.

Por desgracia, el sistema de ayuda en este Delphi instalación no está funcionando, por lo tanto yo no puedo emergente de la ayuda para que la advertencia de que ahora.

Alguien sabe la parte superior de su cabeza ¿qué puedo hacer?

¿Fue útil?

Solución

Está usted seguro de que han hecho todo lo posible para resolver la advertencia?Tal vez usted puede publicar el código para que veamos?

Puede desactivar la advertencia localmente de esta manera:

{$WARN NO_RETVAL OFF}
function func(...): string;
begin
  ...
end;
{$WARN NO_RETVAL ON}

Otros consejos

No estoy seguro de que quiero ver el código de esta unidad...después de todo, el error se produce en la línea 6939 ...Tal vez algunos interno del compilador de la tabla se han superado?

Parece haber algún tipo de error en Delphi.Leer este post, el último comentario enlaces a otros bug de los informes que puede ser el que usted tiene:

http://qc.codegear.com/wc/qcmain.aspx?d=8144

El {$ADVERTIR NO_RETVAL OFF} es lo que usted está buscando, pero en general me gustaría saber por qué este tipo de cosas sucede.Usted podría considerar la posibilidad de aplicar el formato de manera diferente y ver si eso ayuda.

¿Tienes alguna flujo de la alteración de comandos como Salir de allí?¿Directamente al aumento de las excepciones, etc?¿Su caso, de la declaración de una persona en el extremo que establece un valor en el Resultado?

Podría intentar ajustar los elementos y ver si se elimina el aviso.

Con el fin de obtener una buena respuesta para esto, tendrás que publicar el código.En general, el compilador de Delphi va a dar esta advertencia si hay una posible ruta de código que podría resultar en que el Resultado no está definido.A veces que el código de ruta de acceso es menos obvio.

Hay un error en el compilador de Delphi desde, al menos, Delphi4:si la suma de los números de función de los parámetros (incluyendo la Auto y Resultado) y las variables locales supera los 31, a causa de problemas.Por ejemplo, puede escribir W1035 advertencias (el resultado puede ser indefinido).Se puede perder no se utilizan variables.Sólo tratar este proyecto:

program TestCompilerProblems;

procedure Proc;
var
  a01, a02, a03, a04, a05, a06, a07, a08, a09, a10,
  a11, a12, a13, a14, a15, a16, a17, a18, a19, a20,
  a21, a22, a23, a24, a25, a26, a27, a28, a29, a30,
  a31, a32, a33, a34, a35, a36, a37, a38, a39, a40: Integer;
begin
end;

begin
  Proc;
end.

Haría que el 31 de sugerencia, no 40.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top