(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
cpp/
poison.c
       1  /* { dg-do preprocess } */
       2  
       3  #pragma GCC poison foo
       4  foo			/* { dg-error "foo" "use of foo" } */
       5  #pragma GCC poison foo2 foo3
       6  foo2			/* { dg-error "foo2" "use of foo2" } */
       7  foo3			/* { dg-error "foo3" "use of foo3" } */
       8  #pragma GCC poison	foo4 	foo5
       9  foo4			/* { dg-error "foo4" "use of foo4" } */
      10  foo5			/* { dg-error "foo5" "use of foo5" } */
      11  #pragma GCC poison +++	/* { dg-error "invalid" "poison non-identifier" } */
      12  #define foo6 123
      13  #pragma GCC poison foo6	/* { dg-warning "foo6" "poison defined macro" } */
      14  #define foo6 345	/* { dg-error "foo6" "def of foo6" } */
      15  #define foo6 456	/* { dg-error "foo6" "redef of foo6" } */
      16  #ifdef foo6		/* { dg-error "foo6" "#ifdef foo6" } */
      17  #error hey! foo6 defined!
      18  #endif
      19  #if defined(foo6)	/* { dg-error "foo6" "#if defined foo6" } */
      20  #error foo6 still defined!
      21  #else
      22  foo6			/* { dg-error "foo6" "use of foo6" } */
      23  #endif
      24  #pragma GCC poison