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

Packit b40e2e
/* n_37.t:  Translation limits. */
Packit b40e2e
Packit b40e2e
/* 37.1:    Number of parameters in macro: at least 31. */
Packit b40e2e
#define glue31(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E)   \
Packit b40e2e
    a##b##c##d##e##f##g##h##i##j##k##l##m##n##o##p##q##r##s##t##u##v##w##x##y##z##A##B##C##D##E
Packit b40e2e
Packit b40e2e
/* 37.2:    Number of arguments of macro call: at least 31. */
Packit b40e2e
/*  ABCDEFGHIJKLMNOPQRSTUVWXYZabcde;    */
Packit b40e2e
    glue31( A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R
Packit b40e2e
            , S, T, U, V, W, X, Y, Z, a, b, c, d, e);
Packit b40e2e
Packit b40e2e
/* 37.3:    Significant initial characters in an internal identifier or a
Packit b40e2e
        macro name: at least 31.  */
Packit b40e2e
/*  ABCDEFGHIJKLMNOPQRSTUVWXYZabcd_;    */
Packit b40e2e
    ABCDEFGHIJKLMNOPQRSTUVWXYZabcd_;
Packit b40e2e
Packit b40e2e
/* 37.4:    Nested conditional inclusion: at least 8 levels.    */
Packit b40e2e
/*  ifdef_nest = 8;   */
Packit b40e2e
#ifdef  A
Packit b40e2e
#else
Packit b40e2e
#   ifdef   B
Packit b40e2e
#   else
Packit b40e2e
#       ifdef   C
Packit b40e2e
#       else
Packit b40e2e
#           ifdef   D
Packit b40e2e
#           else
Packit b40e2e
#               ifdef   E
Packit b40e2e
#               else
Packit b40e2e
#                   ifdef   F
Packit b40e2e
#                   else
Packit b40e2e
#                       ifdef   G
Packit b40e2e
#                       else
Packit b40e2e
#                           ifdef   H
Packit b40e2e
#                           else
Packit b40e2e
                                ifdef_nest = 8;
Packit b40e2e
#                           endif
Packit b40e2e
#                       endif
Packit b40e2e
#                   endif
Packit b40e2e
#               endif
Packit b40e2e
#           endif
Packit b40e2e
#       endif
Packit b40e2e
#   endif
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* 37.5:    Nested source file inclusion: at least 8 levels.    */
Packit b40e2e
#define X8
Packit b40e2e
/*  nest = 1;  nest = 2;  nest = 3;  nest = 4;
Packit b40e2e
    nest = 5;  nest = 6;  nest = 7;  nest = 8;  */
Packit b40e2e
#include    "nest1.h"
Packit b40e2e
Packit b40e2e
/* 37.6:    Parenthesized expression: at least 32 levels.   */
Packit b40e2e
/*  nest = 32;  */
Packit b40e2e
#if     0 + (1 - (2 + (3 - (4 + (5 - (6 + (7 - (8 + (9 - (10 + (11 - (12 +  \
Packit b40e2e
        (13 - (14 + (15 - (16 + (17 - (18 + (19 - (20 + (21 - (22 + (23 -   \
Packit b40e2e
        (24 + (25 - (26 + (27 - (28 + (29 - (30 + (31 - (32 + 0))))))))))   \
Packit b40e2e
        )))))))))))))))))))))) == 0
Packit b40e2e
    nest = 32;
Packit b40e2e
#endif
Packit b40e2e
Packit b40e2e
/* 37.7:    Characters in a string (after concatenation): at least 509. */
Packit b40e2e
"123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
0123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
0123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
0123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
0123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
0123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
0123456789012345678901234567890123456789012345678901234567890123456789\
Packit b40e2e
012345678901234567"
Packit b40e2e
        ;
Packit b40e2e
Packit b40e2e
/* 37.8:    Characters in a logical source line: at least 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 A123456789012345678901234567890 = 123456;   \
Packit b40e2e
    int B123456789012345678901234567890 = 123457;   \
Packit b40e2e
    int C123456789012345678901234567890 = 123458;   \
Packit b40e2e
    int D1234567890123456789012 = 123459;
Packit b40e2e
Packit b40e2e
/* 37.9:    Macro definitions: at least 1024.   */
Packit b40e2e
#define X0400
Packit b40e2e
#include    "m4095.h"
Packit b40e2e
/*  0x0400; */
Packit b40e2e
    BNJ;
Packit b40e2e
Packit b40e2e
/* { dg-do preprocess }
Packit b40e2e
   { dg-options "-ansi -w" }
Packit b40e2e
   { dg-final { if ![file exist n_37.i] { return }                      } }
Packit b40e2e
   { dg-final { if \{ [grep n_37.i "ABCDEFGHIJKLMNOPQRSTUVWXYZabcde"] != "" \} \{   } }
Packit b40e2e
   { dg-final { if \{ [grep n_37.i "ABCDEFGHIJKLMNOPQRSTUVWXYZabcd_"] != "" \} \{   } }
Packit b40e2e
   { dg-final { if \{ [grep n_37.i "ifdef_nest = 8"] != ""      \} \{   } }
Packit b40e2e
   { dg-final { if \{ [grep n_37.i "nest = 8"] != ""            \} \{   } }
Packit b40e2e
   { dg-final { if \{ [grep n_37.i "nest = 32"] != ""           \} \{   } }
Packit b40e2e
   { dg-final { if \{ [grep n_37.i "0x0400"] != ""              \} \{   } }
Packit b40e2e
   { dg-final { return \} \} \} \} \} \}                                } }
Packit b40e2e
   { dg-final { fail "n_37.c: translation limits"                       } }
Packit b40e2e
 */
Packit b40e2e