Software: Apache. PHP/5.4.45 

uname -a: Linux webm056.cluster010.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue
Sep 17 08:14:20 UTC 2024 x86_64
 

uid=243112(mycochar) gid=100(users) groups=100(users)  

Safe-mode: OFF (not secure)

/home/mycochar/www/image/photo/gcc-12.3.0/gcc/testsuite/gcc.dg/   drwxr-xr-x
Free 0 B of 0 B (0%)
Your ip: 216.73.216.77 - Server ip: 213.186.33.19
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    

[Enumerate]    [Encoder]    [Tools]    [Proc.]    [FTP Brute]    [Sec.]    [SQL]    [PHP-Code]    [Backdoor Host]    [Back-Connection]    [milw0rm it!]    [PHP-Proxy]    [Self remove]
    


Viewing file:     Wrestrict-11.c (5.75 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* PR tree-optimization/84526 - ICE in generic_overlap
   Unrelated to the ICE but rather to PR 84095 that introduced it, verify
   that calls to strncpy involving multidimensional arrays of structs don't
   trigger false positive -Wrestrict warnings.
   { dg-do compile }
   { dg-options "-O2 -Wrestrict -ftrack-macro-expansion=0" }
   { dg-skip-if "too many arguments in function call" { bpf-*-* } } */

typedef __SIZE_TYPE__ size_t;

extern char* strcpy (char*, const char*);

struct MemArrays
{
  char a1[4];
  char a2[4][4];
  char a3[4][4][4];
} ma1[4], ma2[4][4], ma3[4][4][4];

#define T(dst, src) do {                \
    strcpy (src, "123");                \
    strcpy (dst, src);                    \
  } while (0)


void test_ma1_cst (const char *s)
{
  T (ma1[0].a1, ma1[0].a1);           /* { dg-warning "\\\[-Wrestrict]" } */
  T (ma1[0].a1, ma1[1].a1);
  T (ma1[0].a1, ma1[2].a1);
  T (ma1[0].a1, ma1[3].a1);

  T (ma1[0].a1, ma1[0].a1);           /* { dg-warning "\\\[-Wrestrict]" } */
  T (ma1[1].a1, ma1[0].a1);
  T (ma1[2].a1, ma1[0].a1);
  T (ma1[3].a1, ma1[0].a1);
}


void test_ma1_var_cst (const char *s, int i)
{
  T (ma1[i].a1, ma1[0].a1);
  T (ma1[i].a1, ma1[1].a1);
  T (ma1[i].a1, ma1[2].a1);
  T (ma1[i].a1, ma1[3].a1);

  T (ma1[0].a1, ma1[i].a1);
  T (ma1[1].a1, ma1[i].a1);
  T (ma1[2].a1, ma1[i].a1);
  T (ma1[3].a1, ma1[i].a1);
}


void test_ma1_var_var (const char *s, int i, int j)
{
  T (ma1[i].a1, ma1[j].a1);
  T (ma1[i].a1, ma1[j].a1);
  T (ma1[i].a1, ma1[j].a1);
  T (ma1[i].a1, ma1[j].a1);

  T (ma1[i].a1, ma1[j].a1);
  T (ma1[i].a1, ma1[j].a1);
  T (ma1[i].a1, ma1[j].a1);
  T (ma1[i].a1, ma1[j].a1);
}


void test_ma2_cst (const char *s)
{
  T (ma2[0][0].a1, ma2[0][0].a1);     /* { dg-warning "\\\[-Wrestrict]" } */
  T (ma2[0][0].a1, ma2[0][1].a1);
  T (ma2[0][0].a1, ma2[0][2].a1);
  T (ma2[0][0].a1, ma2[0][3].a1);

  T (ma2[0][0].a1, ma2[1][0].a1);
  T (ma2[0][0].a1, ma2[1][1].a1);
  T (ma2[0][0].a1, ma2[1][2].a1);
  T (ma2[0][0].a1, ma2[1][3].a1);

  T (ma2[0][0].a1, ma2[2][0].a1);
  T (ma2[0][0].a1, ma2[2][1].a1);
  T (ma2[0][0].a1, ma2[2][2].a1);
  T (ma2[0][0].a1, ma2[2][3].a1);

  T (ma2[0][0].a1, ma2[3][0].a1);
  T (ma2[0][0].a1, ma2[3][1].a1);
  T (ma2[0][0].a1, ma2[3][2].a1);
  T (ma2[0][0].a1, ma2[3][3].a1);


  T (ma2[0][1].a1, ma2[0][0].a1);
  T (ma2[0][1].a1, ma2[0][1].a1);     /* { dg-warning "\\\[-Wrestrict]" } */
  T (ma2[0][1].a1, ma2[0][2].a1);
  T (ma2[0][1].a1, ma2[0][3].a1);

  T (ma2[0][1].a1, ma2[1][0].a1);
  T (ma2[0][1].a1, ma2[1][1].a1);
  T (ma2[0][1].a1, ma2[1][2].a1);
  T (ma2[0][1].a1, ma2[1][3].a1);

  T (ma2[0][1].a1, ma2[2][0].a1);
  T (ma2[0][1].a1, ma2[2][1].a1);
  T (ma2[0][1].a1, ma2[2][2].a1);
  T (ma2[0][1].a1, ma2[2][3].a1);

  T (ma2[0][1].a1, ma2[3][0].a1);
  T (ma2[0][1].a1, ma2[3][1].a1);
  T (ma2[0][1].a1, ma2[3][2].a1);
  T (ma2[0][1].a1, ma2[3][3].a1);


  T (ma2[0][2].a1, ma2[0][0].a1);
  T (ma2[0][2].a1, ma2[0][1].a1);
  T (ma2[0][2].a1, ma2[0][2].a1);     /* { dg-warning "\\\[-Wrestrict]" } */
  T (ma2[0][2].a1, ma2[0][3].a1);

  T (ma2[0][2].a1, ma2[1][0].a1);
  T (ma2[0][2].a1, ma2[1][1].a1);
  T (ma2[0][2].a1, ma2[1][2].a1);
  T (ma2[0][2].a1, ma2[1][3].a1);

  T (ma2[0][2].a1, ma2[2][0].a1);
  T (ma2[0][2].a1, ma2[2][1].a1);
  T (ma2[0][2].a1, ma2[2][2].a1);
  T (ma2[0][2].a1, ma2[2][3].a1);

  T (ma2[0][2].a1, ma2[3][0].a1);
  T (ma2[0][2].a1, ma2[3][1].a1);
  T (ma2[0][2].a1, ma2[3][2].a1);
  T (ma2[0][2].a1, ma2[3][3].a1);


  T (ma2[0][3].a1, ma2[0][0].a1);
  T (ma2[0][3].a1, ma2[0][1].a1);
  T (ma2[0][3].a1, ma2[0][2].a1);
  T (ma2[0][3].a1, ma2[0][3].a1);     /* { dg-warning "\\\[-Wrestrict]" } */

  T (ma2[0][3].a1, ma2[1][0].a1);
  T (ma2[0][3].a1, ma2[1][1].a1);
  T (ma2[0][3].a1, ma2[1][2].a1);
  T (ma2[0][3].a1, ma2[1][3].a1);

  T (ma2[0][3].a1, ma2[2][0].a1);
  T (ma2[0][3].a1, ma2[2][1].a1);
  T (ma2[0][3].a1, ma2[2][2].a1);
  T (ma2[0][3].a1, ma2[2][3].a1);

  T (ma2[0][3].a1, ma2[3][0].a1);
  T (ma2[0][3].a1, ma2[3][1].a1);
  T (ma2[0][3].a1, ma2[3][2].a1);
  T (ma2[0][3].a1, ma2[3][3].a1);
}


void test_ma2_var (int i0, int j0, int i1, int j1)
{
  T (ma2[i0][j0].a1, ma2[i0][j0].a1);       /* { dg-warning "\\\[-Wrestrict]" } */

  T (ma2[i0][j0].a1, ma2[i0][j1].a1);       /* { dg-bogus "\\\[-Wrestrict]" } */
  T (ma2[i0][j0].a1, ma2[i1][j1].a1);       /* { dg-bogus "\\\[-Wrestrict]" } */

  T (ma2[0][0].a2[i0], ma2[0][0].a2[j0]);   /* { dg-bogus "\\\[-Wrestrict]" } */
  T (ma2[0][i0].a2[0], ma2[0][i1].a2[0]);   /* { dg-bogus "\\\[-Wrestrict]" } */
  T (ma2[i0][0].a2[0], ma2[i1][0].a2[0]);   /* { dg-bogus "\\\[-Wrestrict]" } */
  T (ma2[i0][j0].a2[0], ma2[i1][j1].a2[0]); /* { dg-bogus "\\\[-Wrestrict]" } */
}


void test_p2_var (struct MemArrays **p2, int i0, int j0, int i1, int j1)
{
  T (p2[i0][j0].a1, p2[i0][j0].a1);         /* { dg-warning "\\\[-Wrestrict]" } */

  T (p2[i0][j0].a1, p2[i0][j1].a1);
  T (p2[i0][j0].a1, p2[i1][j1].a1);

  T (p2[0][0].a2[i0], p2[0][0].a2[j0]);
  T (p2[0][i0].a2[0], p2[0][i1].a2[0]);
  T (p2[i0][0].a2[0], p2[i1][0].a2[0]);
  T (p2[i0][j0].a2[0], p2[i1][j1].a2[0]);
}


void test_ma3_cst (const char *s)
{
  T (ma3[0][0][0].a1, ma3[0][0][0].a1); /* { dg-warning "\\\[-Wrestrict]" } */
  T (ma3[0][0][0].a1, ma3[0][0][3].a1);

  T (ma3[0][0][0].a1, ma3[0][1][0].a1);
  T (ma3[0][0][0].a1, ma3[0][1][3].a1);
  T (ma3[0][0][0].a1, ma3[1][0][0].a1);
  T (ma3[0][0][0].a1, ma3[1][0][3].a1);
  T (ma3[0][0][0].a1, ma3[3][0][3].a1);
  T (ma3[0][0][0].a1, ma3[3][3][3].a1);
}


void test_ma3_var (const char *s,
           int i0, int j0, int k0,
           int i1, int j1, int k1)
{
  T (ma3[i0][j0][k0].a1, ma3[i0][j0][k0].a1);   /* { dg-warning "\\\[-Wrestrict]" } */

  T (ma3[i0][j0][k0].a1, ma3[i0][j0][k1].a1);   /* { dg-bogus "\\\[-Wrestrict]" } */
  T (ma3[i0][j0][k0].a1, ma3[i0][j1][k1].a1);   /* { dg-bogus "\\\[-Wrestrict]" } */
  T (ma3[i0][j0][k0].a1, ma3[i1][j1][k1].a1);   /* { dg-bogus "\\\[-Wrestrict]" } */
}

Enter:
 
Select:
 

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

Search
  - regexp 

Upload
 
[ ok ]

Make Dir
 
[ ok ]
Make File
 
[ ok ]

Go Dir
 
Go File
 

--[ x2300 Locus7Shell v. 1.0a beta Modded by #!physx^ | www.LOCUS7S.com | Generation time: 0.006 ]--