Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/cpp/trad/defined.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line source
/* Copyright (C) 2000 Free Software Foundation, Inc. */ /* { dg-do preprocess } */ /* Tests tradcpp0 with defined. The defined operator in traditional C works just the same as the defined operator in Standard C. */ /* Source: Zack Weinberg, glibc, Neil Booth 11 Dec 2000. */ #if defined REGPARMS #error REGPARMS should not be defined #endif #define REGPARMS 1 #if !defined REGPARMS #error REGPARMS should be defined #endif #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 behavior of "defined" when it comes from a macro expansion is now documented. */ #if is_Z_defined #error Macro expanding into defined operator test 1 #endif #define Z #if !defined Z #error Z is defined #endif #if !is_Z_defined #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 behavior of "defined" when it comes from a macro expansion is now documented. */ #if is_Z_defined #error Macro expanding into defined operator test 1 #endif #define Z #if !defined(Z) #error Z is defined #endif #if !is_Z_defined #error Macro expanding into defined operator test 2 #endif