extend.texi (__clear_cache): Correct signature.
authorMartin Sebor <msebor@redhat.com>
Thu, 21 Feb 2019 23:23:12 +0000 (23:23 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Thu, 21 Feb 2019 23:23:12 +0000 (16:23 -0700)
gcc/ChangeLog:

* doc/extend.texi (__clear_cache): Correct signature.

libgcc/ChangeLog:

* libgcc2.h (__clear_cache): Correct signature.
* libgcc2.c (__clear_cache): Same.

gcc/testsuite/ChangeLog:

* gcc.dg/Wbuiltin-declaration-mismatch-12.c: New test.

From-SVN: r269082

gcc/ChangeLog
gcc/doc/extend.texi
libgcc/ChangeLog
libgcc/libgcc2.c
libgcc/libgcc2.h

index 46cc048..c8cecb3 100644 (file)
@@ -1,3 +1,7 @@
+2019-02-21  Martin Sebor  <msebor@redhat.com>
+
+       * doc/extend.texi (__clear_cache): Correct signature.
+
 2019-02-21  Ian Lance Taylor  <iant@golang.org>
 
        PR go/89170
index e7af5a6..545d851 100644 (file)
@@ -13073,7 +13073,7 @@ void foo (void)
 
 @end deftypefn
 
-@deftypefn {Built-in Function} void __builtin___clear_cache (char *@var{begin}, char *@var{end})
+@deftypefn {Built-in Function} void __builtin___clear_cache (void *@var{begin}, void *@var{end})
 This function is used to flush the processor's instruction cache for
 the region of memory between @var{begin} inclusive and @var{end}
 exclusive.  Some targets require that the instruction cache be
index 1ada079..950eeab 100644 (file)
@@ -1,3 +1,8 @@
+2019-02-21  Martin Sebor  <msebor@redhat.com>
+
+       * libgcc2.h (__clear_cache): Correct signature.
+       * libgcc2.c (__clear_cache): Same.
+
 2019-02-20  Uroš Bizjak  <ubizjak@gmail.com>
 
        * config/alpha/linux-unwind.h (alpha_fallback_frame_state):
index 04d3185..763b5fa 100644 (file)
@@ -2162,11 +2162,14 @@ __eprintf (const char *string, const char *expression,
 /* Clear part of an instruction cache.  */
 
 void
-__clear_cache (char *beg __attribute__((__unused__)),
-              char *end __attribute__((__unused__)))
+__clear_cache (void *beg __attribute__((__unused__)),
+              void *end __attribute__((__unused__)))
 {
 #ifdef CLEAR_INSN_CACHE
-  CLEAR_INSN_CACHE (beg, end);
+  /* Cast the void* pointers to char* as some implementations
+     of the macro assume the pointers can be subtracted from
+     one another.  */
+  CLEAR_INSN_CACHE ((char *) beg, (char *) end);
 #endif /* CLEAR_INSN_CACHE */
 }
 
index c9ce2d3..d7988f1 100644 (file)
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #endif
 
 extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
-extern void __clear_cache (char *, char *);
+extern void __clear_cache (void *, void *);
 extern void __eprintf (const char *, const char *, unsigned int, const char *)
   __attribute__ ((__noreturn__));