Blame cpp-test/test-t/u_1_19.c
|
Packit |
b40e2e |
/* u_1_19.c: Undefined behaviors on undefined #define and #undef syntax. */
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
/* { dg-do preprocess } */
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
/* u.1.19: A macro expanded to "defined" in #if expression. */
|
|
Packit |
b40e2e |
#define DEFINED defined
|
|
Packit |
b40e2e |
#if DEFINED DEFINED /* { dg-warning "this use of \"defined\" may not be portable| is expanded to \"defined\"" } */
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
#undef __linux__
|
|
Packit |
b40e2e |
#undef __arm__
|
|
Packit |
b40e2e |
#define __linux__ 1
|
|
Packit |
b40e2e |
#define HAVE_MREMAP defined(__linux__) && !defined(__arm__)
|
|
Packit |
b40e2e |
/* Wrong macro definition.
|
|
Packit |
b40e2e |
* This macro should be defined as follows.
|
|
Packit |
b40e2e |
* #if defined(__linux__) && !defined(__arm__)
|
|
Packit |
b40e2e |
* #define HAVE_MREMAP 1
|
|
Packit |
b40e2e |
* #endif
|
|
Packit |
b40e2e |
*/
|
|
Packit |
b40e2e |
#if HAVE_MREMAP /* { dg-warning "this use of \"defined\" may not be portable| is expanded to \"defined\"" } */
|
|
Packit |
b40e2e |
mremap();
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
/* u.1.20: Undefining __FILE__, __LINE__, __DATE__, __TIME__, __STDC__ or
|
|
Packit |
b40e2e |
"defined" in #undef directive. */
|
|
Packit |
b40e2e |
#undef __LINE__ /* { dg-error "undefining| shouldn't be undefined" } */
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
/* u.1.21: Defining __FILE__, __LINE__, __DATE__, __TIME__, __STDC__ or
|
|
Packit |
b40e2e |
"defined" in #define directive. */
|
|
Packit |
b40e2e |
#define __LINE__ 1234 /* { dg-error "defining| shouldn't be redefined" } */
|
|
Packit |
b40e2e |
#define defined defined /* { dg-error "cannot be used as a macro name| invalid macro name | shouldn't be defined" } */
|
|
Packit |
b40e2e |
#if defined defined
|
|
Packit |
b40e2e |
# error I am not a good preprocessor.
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
|