PR c/94040 - ICE on a call to an invalid redeclaration of strftime
authorMartin Sebor <msebor@redhat.com>
Fri, 13 Mar 2020 18:29:33 +0000 (12:29 -0600)
committerMartin Sebor <msebor@redhat.com>
Fri, 13 Mar 2020 18:29:33 +0000 (12:29 -0600)
gcc/testsuite/ChangeLog:

       * gcc.dg/torture/pr54261-1.c: Correct built-in declartion.

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr54261-1.c

index a379b4039d7ac4636bedc14cd642fbeb41734270..e3d1fc3b50f462a442798671241c4a781b36c3a4 100644 (file)
@@ -7,6 +7,7 @@
        * gcc.dg/Wbuiltin-declaration-mismatch-15.c: New test.
        * gcc.dg/pr62090.c: Prune expected warning.
        * gcc.dg/pr89314.c: Look for warning name rather than text.
+       * gcc.dg/torture/pr54261-1.c: Correct built-in declartion.
 
 2020-03-13  Uroš Bizjak  <ubizjak@gmail.com>
 
index 071b3232d46af135111c89c26908bed44978065f..7286124e9d6aa0d44bbab264c21fe81d753c31a9 100644 (file)
@@ -8,23 +8,23 @@
    a PASS.  Where the bug trigs (at the time this test-case was added),
    cas_int is also false but the fallback isn't used.  */
 __attribute__((__noinline__, __noclone__))
-int
+unsigned
 # if __INT_MAX__ == 0x7fff
  __sync_fetch_and_add_2
 # else
  __sync_fetch_and_add_4
 # endif
- (int *at, int val)
+ (volatile void *at, unsigned val)
 {
-  int tmp = *at;
+  unsigned tmp = *(volatile unsigned*)at;
   asm ("");
-  *at = tmp + val;
+  *(volatile unsigned*)at = tmp + val;
   return tmp;
 }
 #endif
 
 __attribute__((__noinline__, __noclone__))
-void g (int *at, int val)
+void g (unsigned *at, unsigned val)
 {
   asm ("");
   __sync_fetch_and_add (at, val);
@@ -35,8 +35,8 @@ int main(void)
   /* On PTX it is not valid to perform atomic operations on auto
      variables, which end up in .local.  Making this static places it
      in .global.  */
-  static int x = 41;
-  int a = 1;
+  static unsigned x = 41;
+  unsigned a = 1;
   g (&x, a);
 
   if (x != 42)