builtin-strncat-chk-1.c

来自「用于进行gcc测试」· C语言 代码 · 共 39 行

C
39
字号
/* Test whether buffer overflow warnings for __strncat_chk builtin   are emitted properly.  *//* { dg-do compile } *//* { dg-options "-O2 -std=gnu99" } */extern void abort (void);#include "../gcc.c-torture/execute/builtins/chk.h"char buf1[20];char *q;voidtest (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 "will always overflow" } */  *p = 0;  strncat (p, "abcdefgh", 11);  *p = 0;  strncat (p, "abcdefghijkl", 11); /* { dg-warning "will always overflow" } */  *p = 0;  strncat (p, q, 9);  *p = 0;  strncat (p, q, 10); /* { dg-warning "might overflow" } */  *p = 0;  strncat (p, q, 11); /* { dg-warning "might overflow" } */}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?