⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uninit-2.c

📁 this is a gcc file, you can download it and learn its usetility, for further detail please look at t
💻 C
字号:
/* 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -