diff options
author | Neil Booth <neilb@earthling.net> | 2000-11-15 19:23:41 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2000-11-15 19:23:41 +0000 |
commit | cbc2c182d1de2ffc2f5f15db9b96fd0c3dafe815 (patch) | |
tree | 8b147fe2b8f784946b7ccc7782cc6912ebc7b0f3 | |
parent | 6213608449b6268ae63a5a37c06ed32509b17c3a (diff) | |
download | gcc-cbc2c182d1de2ffc2f5f15db9b96fd0c3dafe815.zip gcc-cbc2c182d1de2ffc2f5f15db9b96fd0c3dafe815.tar.gz gcc-cbc2c182d1de2ffc2f5f15db9b96fd0c3dafe815.tar.bz2 |
_Pragma1.c: Update.
* gcc.dg/cpp/_Pragma1.c: Update.
* gcc.dg/cpp/_Pragma2.c: New test.
From-SVN: r37486
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/_Pragma1.c | 16 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/_Pragma2.c | 13 |
3 files changed, 25 insertions, 9 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6a01b92..1ff1fac 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2000-11-15 Neil Booth <neilb@earthling.net> + + gcc.dg/cpp/_Pragma1.c: Update. + gcc.dg/cpp/_Pragma2.c: New test. + 2000-11-15 Nathan Sidwell <nathan@codesourcery.com> * g++.old-deja/g++.other/anon5.C: New test. diff --git a/gcc/testsuite/gcc.dg/cpp/_Pragma1.c b/gcc/testsuite/gcc.dg/cpp/_Pragma1.c index 8759b0a..0f211a9 100644 --- a/gcc/testsuite/gcc.dg/cpp/_Pragma1.c +++ b/gcc/testsuite/gcc.dg/cpp/_Pragma1.c @@ -13,12 +13,10 @@ p1 /* { dg-error "poisoned" } */ _Pragma ("GCC poison p2") p2 /* { dg-error "poisoned" } */ -/* I can see no reason it cannot appear in a directive. Check we - enter the conditional. Putting the _Pragma at EOL also catches - nasties like not saving current lexer state properly. Also test - that wide strings are OK. */ -#if 1 _Pragma (L"GCC poison p3") -p3 /* { 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") @@ -29,10 +27,10 @@ p4 /* No problem; not yet poisoned. */ M1 p4 /* { dg-error "poisoned" } */ M2 (GCC poison p5) p5 /* { dg-error "poisoned" } */ -/* Look, ma! These things even nest. */ +/* Not interpreting _Pragma in directives means they don't nest. */ _Pragma ("_Pragma (\"GCC poison p6\") GCC poison p7") -p6 /* { dg-error "poisoned" } */ -p7 /* { dg-error "poisoned" } */ +p6 +p7 /* Check we ignore them in false conditionals. */ #if 0 diff --git a/gcc/testsuite/gcc.dg/cpp/_Pragma2.c b/gcc/testsuite/gcc.dg/cpp/_Pragma2.c new file mode 100644 index 0000000..24c4457 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/_Pragma2.c @@ -0,0 +1,13 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. */ + +/* { dg-do preprocess } */ + +/* Don't allow directives in a _Pragma string. */ + +/* Contributed by Neil Booth 14 Nov 2000. */ + +_Pragma("#define test") + +#ifdef test +#error Do not allow directives in _Pragma strings +#endif |