Página 1 de 1
Warning compilando com Harbour+Bcc72
Enviado: 26 Fev 2024 11:41
por sygecom
Pessoal,
Alguém saberia o que quer dizer aviso abaixo e como corrigir no meu sistema.
Warning W8066 obj_bcc\hbCTe_HWgui.c 91117: Unreachable code in function hb_INITSTATICS
Estou usando harbour 3.2( bem atual) e BCC7.2( 32 bits )
Warning compilando com Harbour+Bcc72
Enviado: 26 Fev 2024 17:01
por marcosgambeta
De forma geral, 'Unreachable code' indica código que nunca será executado. Por exemplo: uma função, em C, tem um return e após o return, tem 1 ou mais linhas de código. Visto que a execução da função termina no return, o código que vem depois nunca será executado.
No momento, não sei dizer o motivo do BCC gerar este aviso. Mas como é um aviso e não um erro, não deverá afetar seu sistema.
Se quiser, pode silenciar o aviso com a linha abaixo no .hbp:
Não testei a sintaxe, mas acredito que está correta. Avise se não funcionar.
Warning compilando com Harbour+Bcc72
Enviado: 26 Fev 2024 17:24
por marcosgambeta
O Harbour também identifica situações de 'Unreachable code' em código xBase, conforme exemplo abaixo:
Código: Selecionar todos
FUNCTION main()
? func1()
RETURN NIL
STATIC FUNCTION func1()
? "codigo que sera executado"
RETURN 1
? "codigo que nunca será executado" // test1.prg(13) Warning W0028 Unreachable code
RETURN 2
No caso deste aviso, ele aparece quando o .prg está sendo processado pelo Harbour.
No caso apresentado pelo Leonardo, o aviso está vindo do compilador C (BCC). Então, já não é uma questão de corrigir código xBase.
Warning compilando com Harbour+Bcc72
Enviado: 26 Fev 2024 17:27
por sygecom
marcosgambeta escreveu:De forma geral, 'Unreachable code' indica código que nunca será executado. Por exemplo: uma função, em C, tem um return e após o return, tem 1 ou mais linhas de código. Visto que a execução da função termina no return, o código que vem depois nunca será executado.
No momento, não sei dizer o motivo do BCC gerar este aviso. Mas como é um aviso e não um erro, não deverá afetar seu sistema.
Se quiser, pode silenciar o aviso com a linha abaixo no .hbp:
Não testei a sintaxe, mas acredito que está correta. Avise se não funcionar.
Deu certo mestre, obrigado por mais uma dica.
Warning compilando com Harbour+Bcc72
Enviado: 26 Fev 2024 20:57
por sygecom
Pelo menos achei mesmo uma condição que causava isso de ter um RETURN e o código continuar, mais ou menos isso abaixo, ele se perde no .C quando tem um TRY, mudei isso para preencher uma variável e ver o resultado dela e sumiu o erro.
Código: Selecionar todos
TRY
IF aRET['cStat']<>'217'
ENDIF
CATCH
::oCTe_GERAIS:uiAviso('Esta CT-e não pode ser excluída '+HB_OsNewLine()+;
'Não há resposta do SEFAZ')
RETURN(.F.)
END