Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* Test whether buffer overflow warnings for __strncat_chk builtin are emitted properly. */ /* { dg-do compile } */ /* { dg-options "-O2 -std=gnu99 -ftrack-macro-expansion=0" } */ extern void abort (void); #include "../gcc.c-torture/execute/builtins/chk.h" char buf1[20]; char *q; void test (int arg, ...) { char *p = &buf1[10]; *p = 0; strncat (p, "abcdefg", 9); *p = 0; strncat (p, "abcdefghi", 9); *p = 0; strncat (p, "abcdefghij", 9); *p = 0; strncat (p, "abcdefghi", 10); *p = 0; strncat (p, "abcdefghij", 10); /* { dg-warning "writing 11 bytes into a region of size 10 overflows the destination" } */ *p = 0; strncat (p, "abcdefgh", 11); *p = 0; strncat (p, "abcdefghijkl", 11); /* { dg-warning "specified bound 11 exceeds destination size 10" } */ *p = 0; strncat (p, q, 9); *p = 0; strncat (p, q, 10); /* { dg-warning "specified bound 10 equals destination size" } */ *p = 0; strncat (p, q, 11); /* { dg-warning "specified bound 11 exceeds destination size 10" } */ }