mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-11 06:36:52 +08:00
_Pragma1.c: Update.
* gcc.dg/cpp/_Pragma1.c: Update. * gcc.dg/cpp/_Pragma2.c: New test. From-SVN: r37486
This commit is contained in:
parent
6213608449
commit
cbc2c182d1
@ -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.
|
||||
|
@ -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
|
||||
|
13
gcc/testsuite/gcc.dg/cpp/_Pragma2.c
Normal file
13
gcc/testsuite/gcc.dg/cpp/_Pragma2.c
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user