File noreturn.patch of Package scheme48

diff -Pdpru scheme48-1.9.2/c/net/address.c scheme48-1.9.2-mod/c/net/address.c
--- scheme48-1.9.2/c/net/address.c	2012-12-28 01:46:24.000000000 +0900
+++ scheme48-1.9.2-mod/c/net/address.c	2014-05-05 16:50:21.836799983 +0900
@@ -105,6 +105,7 @@ s48_extract_af(s48_call_t call, s48_ref_
     case 3 :
       return AF_UNSPEC;
     }
+    s48_assertion_violation_2(call, "s48_extract_af", "invalid af_val", 1, af_val);
 }
 
 s48_ref_t
@@ -448,6 +449,7 @@ s48_extract_socket_type(s48_call_t call,
       case 1:
 	return SOCK_DGRAM;
       }
+  s48_assertion_violation_2(call, "s48_extract_socket_type", "invalid socktype_val", 1, socktype_val);
 }
 
 s48_ref_t
@@ -504,6 +506,7 @@ extract_ip_protocol(s48_call_t call, s48
       case 5:
 	return IPPROTO_UDP;
     }
+  s48_assertion_violation_2(call, "extract_ip_protocol", "invalid ip", 1, ip);
 }
 
 static s48_ref_t
diff -Pdpru scheme48-1.9.2/c/net/socket.c scheme48-1.9.2-mod/c/net/socket.c
--- scheme48-1.9.2/c/net/socket.c	2012-12-28 01:46:24.000000000 +0900
+++ scheme48-1.9.2-mod/c/net/socket.c	2014-05-05 16:50:25.198799845 +0900
@@ -65,6 +65,7 @@ extract_how(s48_call_t call, s48_ref_t s
       return SHUT_RDWR;
 #endif
     }
+    s48_assertion_violation_2(call, "extract_how", "invalid how_val", 1, how_val);
 }
 
 int
diff -Pdpru scheme48-1.9.2/c/scheme48.h scheme48-1.9.2-mod/c/scheme48.h
--- scheme48-1.9.2/c/scheme48.h	2014-03-03 01:22:18.000000000 +0900
+++ scheme48-1.9.2-mod/c/scheme48.h	2014-05-05 17:05:30.454762787 +0900
@@ -200,12 +200,12 @@ S48_EXTERN void *	s48_value_pointer_2(s4
 /* Exceptions */
 
 S48_EXTERN void s48_error_2(s48_call_t call, const char* who, const char* message,
-			    long irritant_count, ...);
+			    long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_assertion_violation_2(s48_call_t call, const char* who, const char* message,
-					  long irritant_count, ...);
+					  long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_os_error_2(s48_call_t call, const char* who, int the_errno,
-			       long irritant_count, ...);
-S48_EXTERN void s48_out_of_memory_error_2(s48_call_t call);
+			       long irritant_count, ...) __attribute__((noreturn));
+S48_EXTERN void s48_out_of_memory_error_2(s48_call_t call) __attribute__((noreturn));
 
 /* Internal use */
 
@@ -446,26 +446,26 @@ S48_EXTERN void *	s48_value_pointer(s48_
 /* Exceptions */
 
 S48_EXTERN void s48_error(const char* who, const char* message,
-			  long irritant_count, ...);
+			  long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_assertion_violation(const char* who, const char* message,
-					long irritant_count, ...);
+					long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_os_error(const char* who, int the_errno,
-			     long irritant_count, ...);
-S48_EXTERN void s48_out_of_memory_error();
+			     long irritant_count, ...) __attribute__((noreturn));
+S48_EXTERN void s48_out_of_memory_error() __attribute__((noreturn));
 
 /* The following are deprecated */
 
-S48_EXTERN void s48_raise_argument_type_error(s48_value value);
+S48_EXTERN void s48_raise_argument_type_error(s48_value value) __attribute__((deprecated, noreturn));
 S48_EXTERN void s48_raise_argument_number_error(s48_value value,
 						s48_value min,
-						s48_value max);
+						s48_value max) __attribute__((deprecated, noreturn));
 S48_EXTERN void s48_raise_range_error(s48_value value,
 				      s48_value min,
-				      s48_value max);
-S48_EXTERN void s48_raise_closed_channel_error();
-S48_EXTERN void s48_raise_os_error(int the_errno);
-S48_EXTERN void s48_raise_string_os_error(char *reason);
-S48_EXTERN void s48_raise_out_of_memory_error();
+				      s48_value max) __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_closed_channel_error() __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_os_error(int the_errno) __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_string_os_error(char *reason) __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_out_of_memory_error() __attribute__((deprecated, noreturn));
 
 /* Internal use */
 
diff -Pdpru scheme48-1.9.2/c/scheme48.h.in scheme48-1.9.2-mod/c/scheme48.h.in
--- scheme48-1.9.2/c/scheme48.h.in	2012-12-28 01:46:24.000000000 +0900
+++ scheme48-1.9.2-mod/c/scheme48.h.in	2014-05-05 16:10:07.783898808 +0900
@@ -187,12 +187,12 @@ S48_EXTERN void *	s48_value_pointer_2(s4
 /* Exceptions */
 
 S48_EXTERN void s48_error_2(s48_call_t call, const char* who, const char* message,
-			    long irritant_count, ...);
+			    long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_assertion_violation_2(s48_call_t call, const char* who, const char* message,
-					  long irritant_count, ...);
+					  long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_os_error_2(s48_call_t call, const char* who, int the_errno,
-			       long irritant_count, ...);
-S48_EXTERN void s48_out_of_memory_error_2(s48_call_t call);
+			       long irritant_count, ...) __attribute__((noreturn));
+S48_EXTERN void s48_out_of_memory_error_2(s48_call_t call) __attribute__((noreturn));
 
 /* Internal use */
 
@@ -433,26 +433,26 @@ S48_EXTERN void *	s48_value_pointer(s48_
 /* Exceptions */
 
 S48_EXTERN void s48_error(const char* who, const char* message,
-			  long irritant_count, ...);
+			  long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_assertion_violation(const char* who, const char* message,
-					long irritant_count, ...);
+					long irritant_count, ...) __attribute__((noreturn));
 S48_EXTERN void s48_os_error(const char* who, int the_errno,
-			     long irritant_count, ...);
-S48_EXTERN void s48_out_of_memory_error();
+			     long irritant_count, ...) __attribute__((noreturn));
+S48_EXTERN void s48_out_of_memory_error() __attribute__((noreturn));
 
 /* The following are deprecated */
 
-S48_EXTERN void s48_raise_argument_type_error(s48_value value);
+S48_EXTERN void s48_raise_argument_type_error(s48_value value) __attribute__((deprecated, noreturn));
 S48_EXTERN void s48_raise_argument_number_error(s48_value value,
 						s48_value min,
-						s48_value max);
+						s48_value max) __attribute__((deprecated, noreturn));
 S48_EXTERN void s48_raise_range_error(s48_value value,
 				      s48_value min,
-				      s48_value max);
-S48_EXTERN void s48_raise_closed_channel_error();
-S48_EXTERN void s48_raise_os_error(int the_errno);
-S48_EXTERN void s48_raise_string_os_error(char *reason);
-S48_EXTERN void s48_raise_out_of_memory_error();
+				      s48_value max) __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_closed_channel_error() __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_os_error(int the_errno) __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_string_os_error(char *reason) __attribute__((deprecated, noreturn));
+S48_EXTERN void s48_raise_out_of_memory_error() __attribute__((deprecated, noreturn));
 
 /* Internal use */