Viewing file: _Pragma1.c (1.07 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Copyright (C) 2000 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
/* Tests the _Pragma operator. Contributed by Neil Booth 1 Nov 2000. */
/* Within the preprocessor, the easy pragma to test is "poison". */
#pragma GCC poison p1 p1 /* { dg-error "poisoned" } */
/* Standard use of _Pragma. */ _Pragma ("GCC poison p2") p2 /* { dg-error "poisoned" } */
/* Don't interpret _Pragmas in directives. The standard is not clear on this, but I think this makes most sense. */ #if 1 _Pragma (L"GCC poison p3") /* { dg-error "missing binary operator" } */ p3 #endif
#define M1 _Pragma ("GCC poison p4") p4 /* No problem; not yet poisoned. */ #define M2(x) _Pragma (#x)
/* Now test macro expansion with embedded _Pragmas. */ M1 p4 /* { dg-error "poisoned" } */ M2 (GCC poison p5) p5 /* { dg-error "poisoned" } */
/* Not interpreting _Pragma in directives means they don't nest. */ _Pragma ("_Pragma (\"GCC poison p6\") GCC poison p7") p6 p7
/* Check we ignore them in false conditionals. */ #if 0 _Pragma ("GCC poison p8") #endif p8 /* No problem. */
|