Blame cpp-test/test-t/e_14_10.c

Packit Service 8bf002
/* e_14_10.c:   Overflow of constant expression in #if directive.    */
Packit Service 8bf002
Packit Service 8bf002
/* { dg-do preprocess }
Packit Service 8bf002
   { dg-options "-ansi -pedantic-errors" }
Packit Service 8bf002
   { dg-excess-errors "" }
Packit Service 8bf002
 */
Packit Service 8bf002
Packit Service 8bf002
/* 14.10:   */
Packit Service 8bf002
/* In C99, #if expression is evaluated in intmax_t  */
Packit Service 8bf002
#if __STDC_VERSION__ < 199901L
Packit Service 8bf002
#include    <limits.h>
Packit Service 8bf002
Packit Service 8bf002
#if     LONG_MAX - LONG_MIN     /* { dg-error "integer overflow in preprocessor expression| Result of \"-\" is out of range" } */
Packit Service 8bf002
#endif
Packit Service 8bf002
#if     LONG_MAX + 1 > SHRT_MAX     /* { dg-error "integer overflow in preprocessor expression| Result of \"\\+\" is out of range" } */
Packit Service 8bf002
#endif
Packit Service 8bf002
#if     LONG_MIN - 1    /* { dg-error "integer overflow in preprocessor expression| Result of \"-\" is out of range" } */
Packit Service 8bf002
#endif
Packit Service 8bf002
#if     LONG_MAX * 2    /* { dg-error "integer overflow in preprocessor expression| Result of \"\\*\" is out of range" } */
Packit Service 8bf002
#endif
Packit Service 8bf002
#endif
Packit Service 8bf002