delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-workers-bounces using -f |
X-Recipient: | djgpp-workers AT delorie DOT com |
DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
d=gmail.com; s=gamma; | |
h=mime-version:date:message-id:subject:from:to:content-type; | |
bh=eyb/Bpim/I9pGXRt+VSFlZ1T6y1kpO+4q7GwVn0pgik=; | |
b=aj4UCIzR7UNIP5/dgfDhdPCBHyvMpyfm0L2xhqgnn6D8ETs0aCuOvnOt4vsJ8sPN9G | |
h9UqjrlzTea1MQiYKHpSXw3XbcyfZCzn+dFA2TR/DKiXfEw9YWVQAnj2PamLdwNxsyxh | |
GS7FI66sKaIAEPAOft8ygTxWQrvlsv0e507GM= | |
MIME-Version: | 1.0 |
Date: | Sun, 10 Jul 2011 18:32:03 +0300 |
Message-ID: | <CAA2C=vCzxuxuMdBfJO3mdoc2OQpKw5cJ_ywLm6bwazFz5uVGQA@mail.gmail.com> |
Subject: | longjmp not marked with noreturn attribute |
From: | Ozkan Sezer <sezeroz AT gmail DOT com> |
To: | djgpp-workers AT delorie DOT com |
Reply-To: | djgpp-workers AT delorie DOT com |
The setjmp.h from djgpp does not mark longjmp() as noreturn, therefore, g++ warns upon seeing a function who is calling longjmp() and marked as noreturn: host.c: In function 'void Host_Error(const char*, ...)': host.c:226: warning: 'noreturn' function does return The Host_Error() function in question is like: void Host_Error (const char *error, ...) { [... stuff ...] longjmp (host_abortserver, 1); } So, I suggest something like the following: --- setjmp.h.orig 2003-02-04 22:24:11.000000000 +0200 +++ setjmp.h 2011-07-10 18:21:40.000000000 +0300 @@ -22,7 +22,7 @@ typedef struct __jmp_buf { unsigned char __fpu_state[108]; /* for future use */ } jmp_buf[1]; -void longjmp(jmp_buf env, int val); +void longjmp(jmp_buf env, int val) __attribute__((__noreturn__)); int setjmp(jmp_buf env); #define setjmp setjmp /* required by C++ standard */ Regards. -- Ozkan
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |