|
Packit Service |
8bf002 |
/* u_1_19.c: Undefined behaviors on undefined #define and #undef syntax. */
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
#include <stdio.h>
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
main( void)
|
|
Packit Service |
8bf002 |
{
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* u.1.19: A macro expanded to "defined" in #if expression. */
|
|
Packit Service |
8bf002 |
#define DEFINED defined
|
|
Packit Service |
8bf002 |
#if DEFINED DEFINED
|
|
Packit Service |
8bf002 |
#endif
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
#undef __linux__
|
|
Packit Service |
8bf002 |
#undef __arm__
|
|
Packit Service |
8bf002 |
#define __linux__ 1
|
|
Packit Service |
8bf002 |
#define HAVE_MREMAP defined(__linux__) && !defined(__arm__)
|
|
Packit Service |
8bf002 |
/* Wrong macro definition.
|
|
Packit Service |
8bf002 |
* This macro should be defined as follows.
|
|
Packit Service |
8bf002 |
* #if defined(__linux__) && !defined(__arm__)
|
|
Packit Service |
8bf002 |
* #define HAVE_MREMAP 1
|
|
Packit Service |
8bf002 |
* #endif
|
|
Packit Service |
8bf002 |
*/
|
|
Packit Service |
8bf002 |
#if HAVE_MREMAP
|
|
Packit Service |
8bf002 |
mremap();
|
|
Packit Service |
8bf002 |
#endif
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* u.1.20: Undefining __FILE__, __LINE__, __DATE__, __TIME__, __STDC__ or
|
|
Packit Service |
8bf002 |
"defined" in #undef directive. */
|
|
Packit Service |
8bf002 |
#undef __LINE__
|
|
Packit Service |
8bf002 |
/* 31 or other undefined result. */
|
|
Packit Service |
8bf002 |
printf( "%d\n", __LINE__);
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* u.1.21: Defining __FILE__, __LINE__, __DATE__, __TIME__, __STDC__ or
|
|
Packit Service |
8bf002 |
"defined" in #define directive. */
|
|
Packit Service |
8bf002 |
#define __LINE__ 1234
|
|
Packit Service |
8bf002 |
/* 37 or other undefined result. */
|
|
Packit Service |
8bf002 |
printf( "%d\n", __LINE__);
|
|
Packit Service |
8bf002 |
#define defined defined
|
|
Packit Service |
8bf002 |
#if defined defined
|
|
Packit Service |
8bf002 |
# error I am not a good preprocessor.
|
|
Packit Service |
8bf002 |
#endif
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
return 0;
|
|
Packit Service |
8bf002 |
}
|
|
Packit Service |
8bf002 |
|