memset-chk.c
来自「用于进行gcc测试」· C语言 代码 · 共 722 行 · 第 1/2 页
C
722 行
check (off, 5, '\0'); p = memset (u2.buf + off, A, 5); if (p != u2.buf + off) abort (); check (off, 5, 'A'); p = memset (u2.buf + off, 'B', 5); if (p != u2.buf + off) abort (); check (off, 5, 'B'); } /* len == 6 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 6); if (p != u2.buf + off) abort (); check (off, 6, '\0'); p = memset (u2.buf + off, A, 6); if (p != u2.buf + off) abort (); check (off, 6, 'A'); p = memset (u2.buf + off, 'B', 6); if (p != u2.buf + off) abort (); check (off, 6, 'B'); } /* len == 7 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 7); if (p != u2.buf + off) abort (); check (off, 7, '\0'); p = memset (u2.buf + off, A, 7); if (p != u2.buf + off) abort (); check (off, 7, 'A'); p = memset (u2.buf + off, 'B', 7); if (p != u2.buf + off) abort (); check (off, 7, 'B'); } /* len == 8 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 8); if (p != u2.buf + off) abort (); check (off, 8, '\0'); p = memset (u2.buf + off, A, 8); if (p != u2.buf + off) abort (); check (off, 8, 'A'); p = memset (u2.buf + off, 'B', 8); if (p != u2.buf + off) abort (); check (off, 8, 'B'); } /* len == 9 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 9); if (p != u2.buf + off) abort (); check (off, 9, '\0'); p = memset (u2.buf + off, A, 9); if (p != u2.buf + off) abort (); check (off, 9, 'A'); p = memset (u2.buf + off, 'B', 9); if (p != u2.buf + off) abort (); check (off, 9, 'B'); } /* len == 10 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 10); if (p != u2.buf + off) abort (); check (off, 10, '\0'); p = memset (u2.buf + off, A, 10); if (p != u2.buf + off) abort (); check (off, 10, 'A'); p = memset (u2.buf + off, 'B', 10); if (p != u2.buf + off) abort (); check (off, 10, 'B'); } /* len == 11 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 11); if (p != u2.buf + off) abort (); check (off, 11, '\0'); p = memset (u2.buf + off, A, 11); if (p != u2.buf + off) abort (); check (off, 11, 'A'); p = memset (u2.buf + off, 'B', 11); if (p != u2.buf + off) abort (); check (off, 11, 'B'); } /* len == 12 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 12); if (p != u2.buf + off) abort (); check (off, 12, '\0'); p = memset (u2.buf + off, A, 12); if (p != u2.buf + off) abort (); check (off, 12, 'A'); p = memset (u2.buf + off, 'B', 12); if (p != u2.buf + off) abort (); check (off, 12, 'B'); } /* len == 13 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 13); if (p != u2.buf + off) abort (); check (off, 13, '\0'); p = memset (u2.buf + off, A, 13); if (p != u2.buf + off) abort (); check (off, 13, 'A'); p = memset (u2.buf + off, 'B', 13); if (p != u2.buf + off) abort (); check (off, 13, 'B'); } /* len == 14 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 14); if (p != u2.buf + off) abort (); check (off, 14, '\0'); p = memset (u2.buf + off, A, 14); if (p != u2.buf + off) abort (); check (off, 14, 'A'); p = memset (u2.buf + off, 'B', 14); if (p != u2.buf + off) abort (); check (off, 14, 'B'); } /* len == 15 */ for (off = 0; off < MAX_OFFSET; off++) { reset (); p = memset (u2.buf + off, '\0', 15); if (p != u2.buf + off) abort (); check (off, 15, '\0'); p = memset (u2.buf + off, A, 15); if (p != u2.buf + off) abort (); check (off, 15, 'A'); p = memset (u2.buf + off, 'B', 15); if (p != u2.buf + off) abort (); check (off, 15, 'B'); }}void__attribute__((noinline))test6 (void){ int len; char *p; /* off == 0 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf, '\0', len); if (p != u2.buf) abort (); check (0, len, '\0'); p = memset (u2.buf, A, len); if (p != u2.buf) abort (); check (0, len, 'A'); p = memset (u2.buf, 'B', len); if (p != u2.buf) abort (); check (0, len, 'B'); } /* off == 1 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+1, '\0', len); if (p != u2.buf+1) abort (); check (1, len, '\0'); p = memset (u2.buf+1, A, len); if (p != u2.buf+1) abort (); check (1, len, 'A'); p = memset (u2.buf+1, 'B', len); if (p != u2.buf+1) abort (); check (1, len, 'B'); } /* off == 2 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+2, '\0', len); if (p != u2.buf+2) abort (); check (2, len, '\0'); p = memset (u2.buf+2, A, len); if (p != u2.buf+2) abort (); check (2, len, 'A'); p = memset (u2.buf+2, 'B', len); if (p != u2.buf+2) abort (); check (2, len, 'B'); } /* off == 3 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+3, '\0', len); if (p != u2.buf+3) abort (); check (3, len, '\0'); p = memset (u2.buf+3, A, len); if (p != u2.buf+3) abort (); check (3, len, 'A'); p = memset (u2.buf+3, 'B', len); if (p != u2.buf+3) abort (); check (3, len, 'B'); } /* off == 4 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+4, '\0', len); if (p != u2.buf+4) abort (); check (4, len, '\0'); p = memset (u2.buf+4, A, len); if (p != u2.buf+4) abort (); check (4, len, 'A'); p = memset (u2.buf+4, 'B', len); if (p != u2.buf+4) abort (); check (4, len, 'B'); } /* off == 5 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+5, '\0', len); if (p != u2.buf+5) abort (); check (5, len, '\0'); p = memset (u2.buf+5, A, len); if (p != u2.buf+5) abort (); check (5, len, 'A'); p = memset (u2.buf+5, 'B', len); if (p != u2.buf+5) abort (); check (5, len, 'B'); } /* off == 6 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+6, '\0', len); if (p != u2.buf+6) abort (); check (6, len, '\0'); p = memset (u2.buf+6, A, len); if (p != u2.buf+6) abort (); check (6, len, 'A'); p = memset (u2.buf+6, 'B', len); if (p != u2.buf+6) abort (); check (6, len, 'B'); } /* off == 7 */ for (len = 0; len < MAX_COPY2; len++) { reset (); p = memset (u2.buf+7, '\0', len); if (p != u2.buf+7) abort (); check (7, len, '\0'); p = memset (u2.buf+7, A, len); if (p != u2.buf+7) abort (); check (7, len, 'A'); p = memset (u2.buf+7, 'B', len); if (p != u2.buf+7) abort (); check (7, len, 'B'); }}voidmain_test (void){#ifndef __OPTIMIZE__ /* Object size checking is only intended for -O[s123]. */ return;#endif __asm ("" : "=r" (l1) : "0" (l1)); s4 = buffer; test1 (); test2 (); test3 (); test4 (); test5 (); test6 ();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?