URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gcc.dg/] [cpp/] [vararg1.c] - Rev 384
Compare with Previous | Blame | View Log
/* { dg-do run } */ /* { dg-options -w } */ /* count() used to give 1 owing to a buggy test for varargs. */ #define count(y...) count1 ( , ##y) #define count1(y...) count2 (y,1,0) #define count2(_,x0,n,y...) n #if count() != 0 || count(A) != 1 #error Incorrect vararg argument counts #endif /* Test for changed behavior of the GNU varargs extension. ##args, where args is a rest argument which received zero tokens, used to delete the previous sequence of nonwhitespace characters. Now it deletes the previous token. */ #include <string.h> #define S(str, args...) " " str "\n", ##args int main() { const char *s = S("foo"); return strchr (s, '\n') == NULL; }