Patch - Add C99 restrict to iconv.h

Joel Sherrill joel.sherrill@oarcorp.com
Wed Nov 20 01:04:00 GMT 2013


Hi

This is the first restrict patch via Google Code-In.

It is another in the series to add the __restrict keyword.

Is this OK to commit?

2013-11-19  Daniel Ramirez <javamonn@gmail.com>

	* libc/iconv/lib/iconv.c, libc/include/iconv.h,
	libc/sys/linux/iconv/iconv.c: Add restrict keyword.


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985
-------------- next part --------------
Index: newlib/libc/iconv/lib/iconv.c
===================================================================
RCS file: /cvs/src/src/newlib/libc/iconv/lib/iconv.c,v
retrieving revision 1.5
diff -u -r1.5 iconv.c
--- newlib/libc/iconv/lib/iconv.c	21 Aug 2009 20:27:10 -0000	1.5
+++ newlib/libc/iconv/lib/iconv.c	20 Nov 2013 00:12:38 -0000
@@ -45,9 +45,10 @@
 	#include <iconv.h>
 	iconv_t iconv_open (const char *<[to]>, const char *<[from]>);
 	int iconv_close (iconv_t <[cd]>);
-        size_t iconv (iconv_t <[cd]>, char **<[inbuf]>, 
-	              size_t *<[inbytesleft]>, 
-		      char **<[outbuf]>, size_t *<[outbytesleft]>),
+        size_t iconv (iconv_t <[cd]>, char **__restrict<[inbuf]>, 
+	              size_t *__restrict<[inbytesleft]>, 
+		      char **__restrict<[outbuf]>, 
+                      size_t *__restrict<[outbytesleft]>),
 
 	iconv_t _iconv_open_r (struct _reent *<[rptr]>, 
 			       const char *<[to]>, const char *<[from]>);
@@ -168,10 +169,10 @@
 size_t
 _DEFUN(iconv, (cd, inbuf, inbytesleft, outbuf, outbytesleft),
               iconv_t cd          _AND
-              char **inbuf _AND
-              size_t *inbytesleft _AND
-              char **outbuf       _AND
-              size_t *outbytesleft)
+              char **__restrict inbuf _AND
+              size_t *__restrict inbytesleft _AND
+              char **__restrict outbuf       _AND
+              size_t *__restrict outbytesleft)
 {
     return _iconv_r (_REENT, cd, (_CONST char **) inbuf, inbytesleft,
 		     outbuf, outbytesleft);
Index: newlib/libc/include/iconv.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/iconv.h,v
retrieving revision 1.3
diff -u -r1.3 iconv.h
--- newlib/libc/include/iconv.h	21 Aug 2009 20:27:10 -0000	1.3
+++ newlib/libc/include/iconv.h	20 Nov 2013 00:12:38 -0000
@@ -41,7 +41,10 @@
 _EXFUN(iconv_open, (_CONST char *, _CONST char *));
 
 size_t
-_EXFUN(iconv, (iconv_t, char **, size_t *, char **, size_t *));
+_EXFUN(iconv, (iconv_t, char **__restrict,
+               size_t *__restrict, 
+               char **__restrict, 
+               size_t *__restrict));
 
 int
 _EXFUN(iconv_close, (iconv_t));
Index: newlib/libc/sys/linux/iconv/iconv.c
===================================================================
RCS file: /cvs/src/src/newlib/libc/sys/linux/iconv/iconv.c,v
retrieving revision 1.1
diff -u -r1.1 iconv.c
--- newlib/libc/sys/linux/iconv/iconv.c	28 May 2003 22:04:34 -0000	1.1
+++ newlib/libc/sys/linux/iconv/iconv.c	20 Nov 2013 00:12:39 -0000
@@ -29,8 +29,10 @@
 
 
 size_t
-iconv (iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf,
-       size_t *outbytesleft)
+iconv (iconv_t cd, char **__restrict inbuf,
+       size_t *__restrict inbytesleft,
+       char **__restrict outbuf,
+       size_t *__restrict outbytesleft)
 {
   __gconv_t gcd = (__gconv_t) cd;
   char *outstart = outbuf ? *outbuf : NULL;


More information about the Newlib mailing list