X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=compat%2Ffunction-attributes.h;h=1945b5bf1bed7ea6f20c12398a7c82948b68fbdd;hp=18f90903905ef17ff8a97a30577b6f4aafd195c0;hb=6a833a6e83865f6999707cc30768d07e1351c2cb;hpb=da12807734cc90d8bf78ce5814636aaf5a18827b diff --git a/compat/function-attributes.h b/compat/function-attributes.h index 18f90903..1945b5bf 100644 --- a/compat/function-attributes.h +++ b/compat/function-attributes.h @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . */ #ifndef FUNCTION_ATTRIBUTES_H @@ -28,4 +28,20 @@ #define __has_attribute(x) 0 #endif +/* Provide a NORETURN_ATTRIBUTE macro similar to PRINTF_ATTRIBUTE from + * talloc. + * + * This attribute is understood by gcc since version 2.5. clang + * provides support for testing for function attributes. + */ +#ifndef NORETURN_ATTRIBUTE +#if (__GNUC__ >= 3 || \ + (__GNUC__ == 2 && __GNUC_MINOR__ >= 5) || \ + __has_attribute (noreturn)) +#define NORETURN_ATTRIBUTE __attribute__ ((noreturn)) +#else +#define NORETURN_ATTRIBUTE +#endif +#endif + #endif