1  /* { dg-do run } */
       2  /* { dg-options "-fno-builtin-memset" } */
       3  /* { dg-shouldfail "asan" } */
       4  
       5  extern
       6  #ifdef __cplusplus
       7  "C"
       8  #endif
       9  void *memset (void *, int, __SIZE_TYPE__);
      10  
      11  volatile int ten = 10;
      12  
      13  int main() {
      14    static char XXX[10];
      15    static char YYY[10];
      16    static char ZZZ[10];
      17    memset(XXX, 0, 10);
      18    memset(YYY, 0, 10);
      19    memset(ZZZ, 0, 10);
      20    int res = YYY[ten];  /* BOOOM */
      21    res += XXX[ten/10] + ZZZ[ten/10];
      22    return res;
      23  }
      24  
      25  /* { dg-skip-if "inaccurate debug info" { mips*-*-* } { "*" } { "-O0" } } */
      26  /* { dg-output "READ of size 1 at 0x\[0-9a-f\]+ thread T0.*(\n|\r\n|\r)" } */
      27  /* { dg-output "    #0 0x\[0-9a-f\]+ +(in _*main (\[^\n\r]*global-overflow-1.c:20|\[^\n\r]*:0|\[^\n\r]*\\+0x\[0-9a-z\]*)|\[(\])\[^\n\r]*(\n|\r\n|\r).*" } */
      28  /* { dg-output "0x\[0-9a-f\]+ is located 0 bytes after global variable" } */
      29  /* { dg-output ".*YYY\[^\n\r]*asan/global-overflow-1.c:15:15'\[^\n\r]*of size 10\[^\n\r]*(\n|\r\n|\r)" } */