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