|
Packit |
b40e2e |
/* n_13_7.c: Short-circuit evaluation of #if expression. */
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
#include "defs.h"
|
|
Packit |
b40e2e |
#define MACRO_0 0
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
main( void)
|
|
Packit |
b40e2e |
{
|
|
Packit |
b40e2e |
fputs( "started\n", stderr);
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
/* 13.7: 10/0 or 10/MACRO_0 are never evaluated, "divide by zero" error
|
|
Packit |
b40e2e |
cannot occur. */
|
|
Packit |
b40e2e |
#if 0 && 10 / 0
|
|
Packit |
b40e2e |
exit( 1);
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
#if not_defined && 10 / not_defined
|
|
Packit |
b40e2e |
exit( 1);
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
#if MACRO_0 && 10 / MACRO_0 > 1
|
|
Packit |
b40e2e |
exit( 1);
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
#if MACRO_0 ? 10 / MACRO_0 : 0
|
|
Packit |
b40e2e |
exit( 1);
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
#if MACRO_0 == 0 || 10 / MACRO_0 > 1 /* Valid block */
|
|
Packit |
b40e2e |
fputs( "success\n", stderr);
|
|
Packit |
b40e2e |
return 0;
|
|
Packit |
b40e2e |
#else
|
|
Packit |
b40e2e |
exit( 1);
|
|
Packit |
b40e2e |
#endif
|
|
Packit |
b40e2e |
}
|
|
Packit |
b40e2e |
|