Blame test-t/warns.t

Packit b40e2e
/*
Packit b40e2e
 *  warns.t:
Packit b40e2e
 * 1998/08      made public                                     kmatsui
Packit b40e2e
 * 2002/12      slightly modified                               kmatsui
Packit b40e2e
 * 2003/11      added a few samples                             kmatsui
Packit b40e2e
 */
Packit b40e2e
Packit b40e2e
/*
Packit b40e2e
 *   The following texts are legal but suspicious ones.  Good preprocessor
Packit b40e2e
 * will warn at these texts.
Packit b40e2e
 */
Packit b40e2e
Packit b40e2e
/* w.1.1:   "/*" in comment.    */
Packit b40e2e
/*  comment /*  nested comment and no closing   */
Packit b40e2e
Packit b40e2e
/* w.1.2:   Rescanning of replacement text involves succeding text. */
Packit b40e2e
#define sub( x, y)      (x - y)
Packit b40e2e
#define head            sub(
Packit b40e2e
    int     a = 1, b = 2, c;
Packit b40e2e
    c = head a,b );
Packit b40e2e
Packit b40e2e
#define OBJECT_LIKE     FUNCTION_LIKE
Packit b40e2e
#define FUNCTION_LIKE( x, y)    (x + y)
Packit b40e2e
    c = OBJECT_LIKE( a, b);     /* (a + b)  */
Packit b40e2e
Packit b40e2e
/* w.2.1:   Negative number converted to positive in #if expression.    */
Packit b40e2e
#if     -1 < 0U
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* w.2.2:   Out of range of unsigned type (wraps around and never overflow)
Packit b40e2e
        in #if expression.  */
Packit b40e2e
#if     0U - 1
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/*
Packit b40e2e
 *   The following texts are legal but non-portable ones, since these requires
Packit b40e2e
 * translation limits greater than the minima quaranteed by C90.  Good
Packit b40e2e
 * preprocessor will warn at these texts (at least when user wants), unless
Packit b40e2e
 * it diagnose these as errors.
Packit b40e2e
 */
Packit b40e2e
Packit b40e2e
/* w.3.1:   Number of parameters in macro: more than 31.    */
Packit b40e2e
#define glue63(    \
Packit b40e2e
    a0, b0, c0, d0, e0, f0, g0, h0, i0, j0, k0, l0, m0, n0, o0, p0, \
Packit b40e2e
    a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, \
Packit b40e2e
    a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2, \
Packit b40e2e
    a3, b3, c3, d3, e3, f3, g3, h3, i3, j3, k3, l3, m3, n3, o3)     \
Packit b40e2e
    a0 ## b0 ## c0 ## d0 ## e0 ## f0 ## g0 ## h0 ## \
Packit b40e2e
    o0 ## o1 ## o2 ## o3 ## p0 ## p1 ## p2
Packit b40e2e
Packit b40e2e
/* w.3.2:   Number of arguments in macro call: more than 31.    */
Packit b40e2e
/*  A0B0C0D0E0F0G0H0O0O1O2O3P0P1P2; */
Packit b40e2e
    glue63(
Packit b40e2e
    A0, B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0,
Packit b40e2e
    A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, O1, P1,
Packit b40e2e
    A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, L2, M2, N2, O2, P2,
Packit b40e2e
    A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, L3, M3, N3, O3);
Packit b40e2e
Packit b40e2e
/* w.3.3:   Initial significant characters in an identifier: more than 31.  */
Packit b40e2e
    int
Packit b40e2e
A23456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef = 63;
Packit b40e2e
Packit b40e2e
Packit b40e2e
/* w.3.4:   Nested conditional inclusion: more than 8 levels.   */
Packit b40e2e
#define X0F
Packit b40e2e
/*  nest = 0x0f;    */
Packit b40e2e
#include    "ifdef15.h"
Packit b40e2e
Packit b40e2e
/* w.3.5:   Nested source file inclusion: more than 8 levels.   */
Packit b40e2e
#define X0F
Packit b40e2e
/*  nest = 0x0f;    */
Packit b40e2e
#include    "nest1.h"
Packit b40e2e
Packit b40e2e
/* w.3.6:   Parenthesized expression: more than 32 levels.  */
Packit b40e2e
/*  nest = 63;  */
Packit b40e2e
#if \
Packit b40e2e
        (0x00 + (0x01 - (0x02 + (0x03 - (0x04 + (0x05 - (0x06 + (0x07 - \
Packit b40e2e
        (0x08 + (0x09 - (0x0A + (0x0B - (0x0C + (0x0D - (0x0E + (0x0F - \
Packit b40e2e
        (0x10 + (0x11 - (0x12 + (0x13 - (0x14 + (0x15 - (0x16 + (0x17 - \
Packit b40e2e
        (0x18 + (0x19 - (0x1A + (0x1B - (0x1C + (0x1D - (0x1E + (0x1F - \
Packit b40e2e
        (0x20 + (0x21 - (0x22 + (0x23 - (0x24 + (0x25 - (0x26 + (0x27 - \
Packit b40e2e
        (0x28 + (0x29 - (0x2A + (0x2B - (0x2C + (0x2D - (0x2E + (0x2F - \
Packit b40e2e
        (0x30 + (0x31 - (0x32 + (0x33 - (0x34 + (0x35 - (0x36 + (0x37 - \
Packit b40e2e
        (0x38 + (0x39 - (0x3A + (0x3B - (0x3C + (0x3D - 0x3E)           \
Packit b40e2e
        )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))   \
Packit b40e2e
        == -1
Packit b40e2e
    nest = 63;
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* w.3.7:   Characters in a string (after concatenation): more than 509.    */
Packit b40e2e
    char    *string1023 =
Packit b40e2e
"123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
1123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
2123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
3123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
4123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
5123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
6123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
7123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
9123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
a123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
b123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
c123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
d123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
e123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\
Packit b40e2e
f123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
Packit b40e2e
;
Packit b40e2e
Packit b40e2e
/* w.3.8:   Characters in a logical source line: more than 509. */
Packit b40e2e
    int a123456789012345678901234567890 = 123450;   \
Packit b40e2e
    int b123456789012345678901234567890 = 123451;   \
Packit b40e2e
    int c123456789012345678901234567890 = 123452;   \
Packit b40e2e
    int d123456789012345678901234567890 = 123453;   \
Packit b40e2e
    int e123456789012345678901234567890 = 123454;   \
Packit b40e2e
    int f123456789012345678901234567890 = 123455;   \
Packit b40e2e
    int g123456789012345678901234567890 = 123456;   \
Packit b40e2e
    int h123456789012345678901234567890 = 123457;   \
Packit b40e2e
    int i123456789012345678901234567890 = 123458;   \
Packit b40e2e
    int j123456789012345678901234567890 = 123459;   \
Packit b40e2e
    int k123456789012345678901234567890 = 123460;   \
Packit b40e2e
    int l123456789012345678901234567890 = 123461;   \
Packit b40e2e
    int m123456789012345678901234567890 = 123462;   \
Packit b40e2e
    int n123456789012345678901234567890 = 123463;   \
Packit b40e2e
    int o123456789012345678901234567890 = 123464;   \
Packit b40e2e
    int p123456789012345678901234567890 = 123465;   \
Packit b40e2e
    int q123456789012345678901234567890 = 123466;   \
Packit b40e2e
    int r123456789012345678901234567890 = 123467;   \
Packit b40e2e
    int s123456789012345678901234567890 = 123468;   \
Packit b40e2e
    int t1234567890123456 = 123469;
Packit b40e2e
Packit b40e2e
/* w.3.9:   Macro definitions: more than 1024 (including predefined ones).  */
Packit b40e2e
#define X0400
Packit b40e2e
#include    "m4095.h"
Packit b40e2e
/*  0x0400; */
Packit b40e2e
    BNJ;
Packit b40e2e