/* Copyright (C) 2000 Free Software Foundation, Inc.  */

/* { dg-do preprocess } */

/* Tests behaviour of the defined operator.  */

/*  Source: Neil Booth, 29 Oct 2000, Zack Weinberg 11 Dec 2000.  */

#define defined			/* { dg-error "defined" } */

/* No diagnostics, though you could argue there should be.  */
#if defined defined
#error defined is defined!
#endif

#define is_Z_defined defined Z

#if defined Z
#error Z is not defined
#endif

/* The behaviour of "defined" when it comes from a macro expansion is
   now documented.  */
#if is_Z_defined		/* { dg-warning "macro expansion" } */
#error Macro expanding into defined operator test 1
#endif

#define Z

#if !defined Z
#error Z is defined
#endif

#if !is_Z_defined		/* { dg-warning "macro expansion" } */
#error Macro expanding into defined operator test 2
#endif

#undef is_Z_defined
#undef Z

/* Do all the tests over again with the () form of defined.  */

/* No diagnostics, though you could argue there should be.  */
#if defined(defined)
#error defined is defined!
#endif

#define is_Z_defined defined ( Z )

#if defined(Z)
#error Z is not defined
#endif

/* The behaviour of "defined" when it comes from a macro expansion is
   now documented.  */
#if is_Z_defined		/* { dg-warning "macro expansion" } */
#error Macro expanding into defined operator test 1
#endif

#define Z

#if !defined(Z)
#error Z is defined
#endif

#if !is_Z_defined		/* { dg-warning "macro expansion" } */
#error Macro expanding into defined operator test 2
#endif
