Como desativar um aviso em Delphi sobre o "valor de retorno ... pode ser indefinido"?

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu tenho uma função que me dá o seguinte aviso:

[DCC Aviso] nome do arquivo.pas(6939):W1035 valor de Retorno da função 'função' pode ser indefinido

A função, no entanto, é limpo, pequeno, e não tem um conhecido, esperado, valor de retorno.A primeira instrução da função é:

Result := '';

e não há uma variável local ou parâmetro chamado Result qualquer um.

Há algum tipo de pragma-tal como a directiva eu posso cercam este método para remover este aviso?Este é o Delphi 2007.

Infelizmente, o sistema de ajuda neste Delphi instalação não está funcionando, portanto, eu não posso pop-up de ajuda para que o aviso de direito agora.

Alguém sabe o topo de sua cabeça que eu posso fazer?

Foi útil?

Solução

Tem certeza de que você tem feito de tudo para resolver o aviso?Talvez você poderia postar o código para olhar?

Você pode desativar o aviso localmente desta forma:

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

Outras dicas

Eu não tenho certeza que eu quero ver o código para este aparelho...afinal, o erro ocorre na linha 6939 ...Talvez alguns interno do compilador tabela de ter sido ultrapassado?

Parece ser algum tipo de erro no Delphi.Leia este post, o último comentário links para outros relatórios de erros que pode ser o único que você tem:

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

O {$AVISAR NO_RETVAL OFF} é o que você está procurando, mas geralmente, eu gostaria de saber por que coisas como isso acontece.Você pode considerar formatação de maneira diferente e ver se isso ajuda.

Você tem alguma fluxo de alterar comandos como Sair de lá?Você diretamente levantar exceções, etc?Será que o seu caso de declaração têm uma coisa no final que define um valor no Resultado?

Pode tentar ajustar a esses elementos, e ver se o que elimina o aviso também.

A fim de obter uma boa resposta para isso, você terá que postar o código.Em geral, o compilador Delphi vai dar esse aviso se há um possível caminho de código que pode resultar em um Resultado não está sendo definido.Por vezes, que o caminho de código é menos do que óbvio.

Não é um bug no compilador Delphi desde, pelo menos, Delphi4:se a soma dos números de função de parâmetros (incluindo Auto e de Resultado) e variáveis locais excede 31, ele causa problemas.Por exemplo, ele pode escrever W1035 avisos (resultado pode ser indefinido).Ele pode perder, não usado variáveis.Apenas tente este projeto:

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.

Ele poderia causar 31 de dica, não 40.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top