Warning compilando com Harbour+Bcc72

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Warning compilando com Harbour+Bcc72

Mensagem 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 )
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Warning compilando com Harbour+Bcc72

Mensagem 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:

Código: Selecionar todos

{bcc}-cflag=-w-8066
Não testei a sintaxe, mas acredito que está correta. Avise se não funcionar.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Warning compilando com Harbour+Bcc72

Mensagem 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.
Atenciosamente,
Marcos Antonio Gambeta
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Warning compilando com Harbour+Bcc72

Mensagem 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:

Código: Selecionar todos

{bcc}-cflag=-w-8066
Não testei a sintaxe, mas acredito que está correta. Avise se não funcionar.
Deu certo mestre, obrigado por mais uma dica.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Warning compilando com Harbour+Bcc72

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder