Blame include/setjmp.h

Packit Service 82fcde
#ifndef _SETJMP_H
Packit Service 82fcde
#include <setjmp/setjmp.h>
Packit Service 82fcde
Packit Service 82fcde
#ifndef _ISOMAC
Packit Service 82fcde
/* Now define the internal interfaces.  */
Packit Service 82fcde
Packit Service 82fcde
/* Internal machine-dependent function to restore context sans signal mask.  */
Packit Service 82fcde
extern void __longjmp (__jmp_buf __env, int __val)
Packit Service 82fcde
     __attribute__ ((__noreturn__)) attribute_hidden;
Packit Service 82fcde
Packit Service 82fcde
extern void ____longjmp_chk (__jmp_buf __env, int __val)
Packit Service 82fcde
     __attribute__ ((__noreturn__)) attribute_hidden;
Packit Service 82fcde
Packit Service 82fcde
/* Internal function to possibly save the current mask of blocked signals
Packit Service 82fcde
   in ENV, and always set the flag saying whether or not it was saved.
Packit Service 82fcde
   This is used by the machine-dependent definition of `__sigsetjmp'.
Packit Service 82fcde
   Always returns zero, for convenience.  */
Packit Service 82fcde
extern int __sigjmp_save (jmp_buf __env, int __savemask);
Packit Service 82fcde
Packit Service 82fcde
extern void _longjmp_unwind (jmp_buf env, int val);
Packit Service 82fcde
Packit Service 82fcde
extern void __libc_siglongjmp (sigjmp_buf env, int val)
Packit Service 82fcde
	  __attribute__ ((noreturn));
Packit Service 82fcde
extern void __libc_longjmp (sigjmp_buf env, int val)
Packit Service 82fcde
     __attribute__ ((noreturn));
Packit Service 82fcde
Packit Service 82fcde
libc_hidden_proto (_setjmp)
Packit Service 82fcde
libc_hidden_proto (__sigsetjmp)
Packit Service 82fcde
Packit Service 82fcde
# if IS_IN (rtld) && !defined NO_RTLD_HIDDEN
Packit Service 82fcde
extern __typeof (__sigsetjmp) __sigsetjmp attribute_hidden;
Packit Service 82fcde
# endif
Packit Service 82fcde
Packit Service 82fcde
/* Check jmp_buf sizes, alignments and offsets.  */
Packit Service 82fcde
# include <stddef.h>
Packit Service 82fcde
# include <jmp_buf-macros.h>
Packit Service 82fcde
Packit Service 82fcde
# define STR_HELPER(x) #x
Packit Service 82fcde
# define STR(x) STR_HELPER(x)
Packit Service 82fcde
Packit Service 82fcde
# define TEST_SIZE(type, size) \
Packit Service 82fcde
  _Static_assert (sizeof (type) == size, \
Packit Service 82fcde
		  "size of " #type " != " \
Packit Service 82fcde
		  STR (size))
Packit Service 82fcde
# define TEST_ALIGN(type, align) \
Packit Service 82fcde
  _Static_assert (__alignof__ (type) == align , \
Packit Service 82fcde
		  "align of " #type " != " \
Packit Service 82fcde
		  STR (align))
Packit Service 82fcde
# define TEST_OFFSET(type, member, offset) \
Packit Service 82fcde
  _Static_assert (offsetof (type, member) == offset, \
Packit Service 82fcde
		  "offset of " #member " field of " #type " != " \
Packit Service 82fcde
		  STR (offset))
Packit Service 82fcde
Packit Service 82fcde
/* Check if jmp_buf have the expected sizes.  */
Packit Service 82fcde
TEST_SIZE (jmp_buf, JMP_BUF_SIZE);
Packit Service 82fcde
TEST_SIZE (sigjmp_buf, SIGJMP_BUF_SIZE);
Packit Service 82fcde
Packit Service 82fcde
/* Check if jmp_buf have the expected alignments.  */
Packit Service 82fcde
TEST_ALIGN (jmp_buf, JMP_BUF_ALIGN);
Packit Service 82fcde
TEST_ALIGN (sigjmp_buf, SIGJMP_BUF_ALIGN);
Packit Service 82fcde
Packit Service 82fcde
/* Check if internal fields in jmp_buf have the expected offsets.  */
Packit Service 82fcde
TEST_OFFSET (struct __jmp_buf_tag, __mask_was_saved,
Packit Service 82fcde
	     MASK_WAS_SAVED_OFFSET);
Packit Service 82fcde
TEST_OFFSET (struct __jmp_buf_tag, __saved_mask,
Packit Service 82fcde
	     SAVED_MASK_OFFSET);
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
#endif