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

Packit b40e2e
/* warn_3.c */
Packit b40e2e
Packit b40e2e
/* { dg-do preprocess } */
Packit b40e2e
/* { dg-options "-ansi -pedantic -Wall" }   */
Packit b40e2e
/* { dg-excess-errors "" }  */
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
/* { dg-warning "More than 31 (parameters|arguments)" "" { target *-*-* } 0 }   */
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
/* { dg-warning "Identifier longer than 31 characters" "" { target *-*-* } 34 }  */
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
/* { dg-warning "More than 8 nesting of #if" "" { target *-*-* } 0 }    */
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
/* { dg-warning "More than 8 nesting of #include" "" { target *-*-* } 0 }   */
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
/* { dg-warning "More than 32 nesting of parens" "" { target *-*-* } 0  }   */
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
/* { dg-warning "string length `\[0-9\]*' is greater than the length `509'| Quotation longer than 509 bytes" "" { target *-*-* } 0 } */
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
/* { dg-warning "Logical source line longer than 509 bytes" "" { target *-*-* } 0 } */
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
/* { dg-warning "More than 1024 macros defined" "" { target *-*-* } 0 } */
Packit b40e2e