merge from gcc
authorDJ Delorie <dj@redhat.com>
Wed, 17 Apr 2002 01:03:04 +0000 (01:03 +0000)
committerDJ Delorie <dj@redhat.com>
Wed, 17 Apr 2002 01:03:04 +0000 (01:03 +0000)
include/ChangeLog
include/xregex2.h

index 135105899f66bc94eb17c131e4169f8ddf836f82..dd0a2302ae9af14e25e601c66dbfca1e784b657f 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-16  David S. Miller  <davem@redhat.com>
+
+       * xregex2.h (__restrict_arr): Define to __restrict on GCC
+       3.1 and later.  Do not redefine.
+
 2002-04-01  Phil Edwards  <pme@gcc.gnu.org>
 
        * dyn-string.h:  Also allow IN_GLIBCPP_V3 to redefine names.
index b9c2d97cce1b6e59ee43ed64d374cddfed466f81..2991daf9bcf3e3a5c66405b10d0522d7fe053f50 100644 (file)
@@ -529,10 +529,16 @@ extern int re_exec _RE_ARGS ((const char *));
 #  endif
 # endif
 #endif
-/* For now unconditionally define __restrict_arr to expand to nothing.
-   Ideally we would have a test for the compiler which allows defining
-   it to restrict.  */
-#define __restrict_arr
+
+/* GCC 3.1 and later support declaring arrays as non-overlapping
+   using the syntax array_name[restrict]  */
+#ifndef __restrict_arr
+# if ! (3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) || defined (__GNUG__)
+#  define __restrict_arr
+# else
+#  define __restrict_arr __restrict
+# endif
+#endif
 
 /* POSIX compatibility.  */
 extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,