diff options
Diffstat (limited to 'src/lisp.h')
-rw-r--r-- | src/lisp.h | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/lisp.h b/src/lisp.h index 2915944ffec..25d0a3d6ac1 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -166,6 +166,9 @@ typedef EMACS_UINT uprintmax_t; # define pD "t" #endif +/* Convenience macro for rarely-used functions that do not return. */ +#define AVOID _Noreturn ATTRIBUTE_COLD void + /* Extra internal type checking? */ /* Define Emacs versions of <assert.h>'s 'assert (COND)' and <verify.h>'s @@ -196,7 +199,7 @@ typedef EMACS_UINT uprintmax_t; # define eassume(cond) assume (cond) #else /* ENABLE_CHECKING */ -extern _Noreturn void die (const char *, const char *, int); +extern AVOID die (const char *, const char *, int); extern bool suppress_checking EXTERNALLY_VISIBLE; @@ -621,7 +624,7 @@ extern Lisp_Object char_table_ref (Lisp_Object, int); extern void char_table_set (Lisp_Object, int, Lisp_Object); /* Defined in data.c. */ -extern _Noreturn void wrong_type_argument (Lisp_Object, Lisp_Object); +extern AVOID wrong_type_argument (Lisp_Object, Lisp_Object); /* Defined in emacs.c. */ @@ -3528,7 +3531,7 @@ modiff_to_integer (modiff_count a) } /* Defined in data.c. */ -extern _Noreturn void wrong_choice (Lisp_Object, Lisp_Object); +extern AVOID wrong_choice (Lisp_Object, Lisp_Object); extern void notify_variable_watchers (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); extern Lisp_Object indirect_function (Lisp_Object); @@ -3555,10 +3558,9 @@ extern intmax_t cons_to_signed (Lisp_Object, intmax_t, intmax_t); extern uintmax_t cons_to_unsigned (Lisp_Object, uintmax_t); extern struct Lisp_Symbol *indirect_variable (struct Lisp_Symbol *); -extern _Noreturn void args_out_of_range (Lisp_Object, Lisp_Object); -extern _Noreturn void args_out_of_range_3 (Lisp_Object, Lisp_Object, - Lisp_Object); -extern _Noreturn void circular_list (Lisp_Object); +extern AVOID args_out_of_range (Lisp_Object, Lisp_Object); +extern AVOID args_out_of_range_3 (Lisp_Object, Lisp_Object, Lisp_Object); +extern AVOID circular_list (Lisp_Object); extern Lisp_Object do_symval_forwarding (lispfwd); enum Set_Internal_Bind { SET_INTERNAL_SET, @@ -3666,7 +3668,7 @@ extern void syms_of_json (void); /* Defined in insdel.c. */ extern void move_gap_both (ptrdiff_t, ptrdiff_t); -extern _Noreturn void buffer_overflow (void); +extern AVOID buffer_overflow (void); extern void make_gap (ptrdiff_t); extern void make_gap_1 (struct buffer *, ptrdiff_t); extern ptrdiff_t copy_text (const unsigned char *, unsigned char *, @@ -3766,8 +3768,8 @@ extern void *my_heap_start (void); extern void check_pure_size (void); extern void allocate_string_data (struct Lisp_String *, EMACS_INT, EMACS_INT); extern void malloc_warning (const char *); -extern _Noreturn void memory_full (size_t); -extern _Noreturn void buffer_memory_full (ptrdiff_t); +extern AVOID memory_full (size_t); +extern AVOID buffer_memory_full (ptrdiff_t); extern bool survives_gc_p (Lisp_Object); extern void mark_object (Lisp_Object); #if defined REL_ALLOC && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC @@ -3848,7 +3850,7 @@ list4i (EMACS_INT x, EMACS_INT y, EMACS_INT w, EMACS_INT h) extern Lisp_Object make_uninit_bool_vector (EMACS_INT); extern Lisp_Object bool_vector_fill (Lisp_Object, Lisp_Object); -extern _Noreturn void string_overflow (void); +extern AVOID string_overflow (void); extern Lisp_Object make_string (const char *, ptrdiff_t); extern Lisp_Object make_formatted_string (char *, const char *, ...) ATTRIBUTE_FORMAT_PRINTF (2, 3); @@ -4095,18 +4097,17 @@ extern Lisp_Object run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args, Lisp_Object (*funcall) (ptrdiff_t nargs, Lisp_Object *args)); extern Lisp_Object quit (void); -INLINE _Noreturn void +INLINE AVOID xsignal (Lisp_Object error_symbol, Lisp_Object data) { Fsignal (error_symbol, data); } -extern _Noreturn void xsignal0 (Lisp_Object); -extern _Noreturn void xsignal1 (Lisp_Object, Lisp_Object); -extern _Noreturn void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object); -extern _Noreturn void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, - Lisp_Object); -extern _Noreturn void signal_error (const char *, Lisp_Object); -extern _Noreturn void overflow_error (void); +extern AVOID xsignal0 (Lisp_Object); +extern AVOID xsignal1 (Lisp_Object, Lisp_Object); +extern AVOID xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object); +extern AVOID xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); +extern AVOID signal_error (const char *, Lisp_Object); +extern AVOID overflow_error (void); extern bool FUNCTIONP (Lisp_Object); extern Lisp_Object funcall_subr (struct Lisp_Subr *subr, ptrdiff_t numargs, Lisp_Object *arg_vector); extern Lisp_Object eval_sub (Lisp_Object form); @@ -4145,8 +4146,8 @@ extern void set_unwind_protect_ptr (ptrdiff_t, void (*) (void *), void *); extern Lisp_Object unbind_to (ptrdiff_t, Lisp_Object); extern void rebind_for_thread_switch (void); extern void unbind_for_thread_switch (struct thread_state *); -extern _Noreturn void error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2); -extern _Noreturn void verror (const char *, va_list) +extern AVOID error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2); +extern AVOID verror (const char *, va_list) ATTRIBUTE_FORMAT_PRINTF (1, 0); extern Lisp_Object vformat_string (const char *, va_list) ATTRIBUTE_FORMAT_PRINTF (1, 0); @@ -4243,7 +4244,7 @@ extern void syms_of_editfns (void); /* Defined in buffer.c. */ extern bool mouse_face_overlay_overlaps (Lisp_Object); extern Lisp_Object disable_line_numbers_overlay_at_eob (void); -extern _Noreturn void nsberror (Lisp_Object); +extern AVOID nsberror (Lisp_Object); extern void adjust_overlays_for_insert (ptrdiff_t, ptrdiff_t); extern void adjust_overlays_for_delete (ptrdiff_t, ptrdiff_t); extern void fix_start_end_in_overlays (ptrdiff_t, ptrdiff_t); @@ -4286,9 +4287,9 @@ extern void close_file_unwind (int); extern void fclose_unwind (void *); extern void restore_point_unwind (Lisp_Object); extern Lisp_Object get_file_errno_data (const char *, Lisp_Object, int); -extern _Noreturn void report_file_errno (const char *, Lisp_Object, int); -extern _Noreturn void report_file_error (const char *, Lisp_Object); -extern _Noreturn void report_file_notify_error (const char *, Lisp_Object); +extern AVOID report_file_errno (const char *, Lisp_Object, int); +extern AVOID report_file_error (const char *, Lisp_Object); +extern AVOID report_file_notify_error (const char *, Lisp_Object); extern bool internal_delete_file (Lisp_Object); extern Lisp_Object emacs_readlinkat (int, const char *); extern bool file_directory_p (Lisp_Object); @@ -4409,7 +4410,7 @@ extern bool display_arg; #endif extern Lisp_Object decode_env_path (const char *, const char *, bool); extern Lisp_Object empty_unibyte_string, empty_multibyte_string; -extern _Noreturn void terminate_due_to_signal (int, int); +extern AVOID terminate_due_to_signal (int, int); #ifdef WINDOWSNT extern Lisp_Object Vlibrary_cache; #endif @@ -4574,7 +4575,7 @@ extern EMACS_INT get_random (void); extern void seed_random (void *, ptrdiff_t); extern void init_random (void); extern void emacs_backtrace (int); -extern _Noreturn void emacs_abort (void) NO_INLINE; +extern AVOID emacs_abort (void) NO_INLINE; extern int emacs_open (const char *, int, int); extern int emacs_pipe (int[2]); extern int emacs_close (int); @@ -4615,8 +4616,7 @@ extern Lisp_Object directory_files_internal (Lisp_Object, Lisp_Object, /* Defined in term.c. */ extern int *char_ins_del_vector; extern void syms_of_term (void); -extern _Noreturn void fatal (const char *msgid, ...) - ATTRIBUTE_FORMAT_PRINTF (1, 2); +extern AVOID fatal (const char *msgid, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2); /* Defined in terminal.c. */ extern void syms_of_terminal (void); |