uninit-2.c
来自「this is a gcc file, you can download it 」· C语言 代码 · 共 53 行
C
53 行
/* Spurious uninitialized variable warnings, case 2. Taken from cpphash.c (macroexpand) *//* { dg-do compile } *//* { dg-options "-O -Wuninitialized" } */struct definition{ int nargs; int rest_args;};struct cpp_reader;enum cpp_token{ CPP_EOF, CPP_POP, CPP_COMMA, CPP_RPAREN};extern enum cpp_token macarg (struct cpp_reader *, int);voidmacroexpand (struct cpp_reader *pfile, struct definition *defn){ int nargs = defn->nargs; if (nargs >= 0) { enum cpp_token token; /* { dg-bogus "token" "uninitialized variable warning" { xfail *-*-* } } */ int i, rest_args; i = 0; rest_args = 0; do { if (rest_args) continue; if (i < nargs || (nargs == 0 && i == 0)) { /* if we are working on last arg which absorbs rest of args... */ if (i == nargs - 1 && defn->rest_args) rest_args = 1; token = macarg (pfile, rest_args); } else token = macarg (pfile, 0); if (token == CPP_EOF || token == CPP_POP) return; i++; } while (token == CPP_COMMA); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?