marker1(void)1*a1ba9ba4Schristos void marker1 (void)
2*a1ba9ba4Schristos {
3*a1ba9ba4Schristos }
4*a1ba9ba4Schristos 
5*a1ba9ba4Schristos /* misc. function params */
6*a1ba9ba4Schristos 
7*a1ba9ba4Schristos int
qux1(const char cc,const char ccr,const char * ccp,char * const cpc)8*a1ba9ba4Schristos qux1 (const char cc, const char /*&*/ccr, const char *ccp, char *const cpc)
9*a1ba9ba4Schristos {
10*a1ba9ba4Schristos   return 33;
11*a1ba9ba4Schristos }
12*a1ba9ba4Schristos 
13*a1ba9ba4Schristos int
qux2(volatile unsigned char vuc,const volatile int cvi,volatile short vsr,volatile long * vlp,float * volatile fpv,const volatile signed char * const volatile cvscpcv)14*a1ba9ba4Schristos qux2 (volatile unsigned char vuc, const volatile int cvi,
15*a1ba9ba4Schristos       volatile short /*&*/vsr, volatile long *vlp, float *volatile fpv,
16*a1ba9ba4Schristos       const volatile signed char *const volatile cvscpcv)
17*a1ba9ba4Schristos {
18*a1ba9ba4Schristos   return 400;
19*a1ba9ba4Schristos }
20*a1ba9ba4Schristos 
21*a1ba9ba4Schristos int
main(void)22*a1ba9ba4Schristos main (void)
23*a1ba9ba4Schristos {
24*a1ba9ba4Schristos   char lave = 'B';
25*a1ba9ba4Schristos   unsigned char lavish = 10;
26*a1ba9ba4Schristos   short lax = 20;
27*a1ba9ba4Schristos   unsigned short lecherous = 30;
28*a1ba9ba4Schristos   long lechery = 40;
29*a1ba9ba4Schristos   unsigned long lectern = 50;
30*a1ba9ba4Schristos   float leeway = 60;
31*a1ba9ba4Schristos   double legacy = 70;
32*a1ba9ba4Schristos   signed char lemonade = 35;
33*a1ba9ba4Schristos 
34*a1ba9ba4Schristos   const char            laconic = 'A';
35*a1ba9ba4Schristos   const unsigned char   laggard = 1;
36*a1ba9ba4Schristos   const short           lagoon = 2;
37*a1ba9ba4Schristos   const unsigned short  laity = 3;
38*a1ba9ba4Schristos   const long            lambent = 4;
39*a1ba9ba4Schristos   const unsigned long   laminated = 5;
40*a1ba9ba4Schristos   const float           lampoon = 6;
41*a1ba9ba4Schristos   const double          languid = 7;
42*a1ba9ba4Schristos 
43*a1ba9ba4Schristos   /* pointers to constant variables */
44*a1ba9ba4Schristos 
45*a1ba9ba4Schristos   const char           *legend      = &lave;
46*a1ba9ba4Schristos   const unsigned char  *legerdemain = &lavish;
47*a1ba9ba4Schristos   const short          *leniency    = &lax;
48*a1ba9ba4Schristos   const unsigned short *leonine     = &lecherous;
49*a1ba9ba4Schristos   const long           *lesion      = &lechery;
50*a1ba9ba4Schristos   const unsigned long  *lethal      = &lectern;
51*a1ba9ba4Schristos   const float          *lethargic   = &leeway;
52*a1ba9ba4Schristos   const double         *levity      = &legacy;
53*a1ba9ba4Schristos 
54*a1ba9ba4Schristos   /* constant pointers to constant variables */
55*a1ba9ba4Schristos 
56*a1ba9ba4Schristos   const char           *const lewd          = &laconic;
57*a1ba9ba4Schristos   const unsigned char  *const lexicographer = &laggard;
58*a1ba9ba4Schristos   const short          *const lexicon       = &lagoon;
59*a1ba9ba4Schristos   const unsigned short *const liaison       = &laity;
60*a1ba9ba4Schristos   const long           *const libation      = &lambent;
61*a1ba9ba4Schristos   const unsigned long  *const libelous      = &laminated;
62*a1ba9ba4Schristos   const float          *const libertine     = &lampoon;
63*a1ba9ba4Schristos   const double         *const libidinous    = &languid;
64*a1ba9ba4Schristos 
65*a1ba9ba4Schristos   /* this is the same as const char * legend .... */
66*a1ba9ba4Schristos 
67*a1ba9ba4Schristos   char           const *languish   = &laconic;
68*a1ba9ba4Schristos   unsigned char  const *languor    = &laggard;
69*a1ba9ba4Schristos   short          const *lank       = &lagoon;
70*a1ba9ba4Schristos   unsigned short const *lapidary   = &laity;
71*a1ba9ba4Schristos   long           const *larceny    = &lambent;
72*a1ba9ba4Schristos   unsigned long  const *largess    = &laminated;
73*a1ba9ba4Schristos   float          const *lascivious = &lampoon;
74*a1ba9ba4Schristos   double         const *lassitude  = &languid;
75*a1ba9ba4Schristos 
76*a1ba9ba4Schristos   /* constant pointers to variable */
77*a1ba9ba4Schristos 
78*a1ba9ba4Schristos   char           *const   lamprey   = &lave;
79*a1ba9ba4Schristos   unsigned char  *const   lariat    = &lavish;
80*a1ba9ba4Schristos   short          *const   laudanum  = &lax;
81*a1ba9ba4Schristos   unsigned short *const   lecithin  = &lecherous;
82*a1ba9ba4Schristos   long           *const   leviathan = &lechery;
83*a1ba9ba4Schristos   unsigned long  *const   libretto  = &lectern;
84*a1ba9ba4Schristos   float          *const   lissome   = &leeway;
85*a1ba9ba4Schristos   double         *const   locust    = &legacy;
86*a1ba9ba4Schristos 
87*a1ba9ba4Schristos   /* constant arrays */
88*a1ba9ba4Schristos   const char logical[2] = {laconic, laconic};
89*a1ba9ba4Schristos   const unsigned char lugged[2] = {laggard, laggard};
90*a1ba9ba4Schristos   const short luck[2] = {lagoon, lagoon};
91*a1ba9ba4Schristos   const unsigned short lunar[2] = {laity, laity};
92*a1ba9ba4Schristos   const long lumen[2] = {lambent, lambent};
93*a1ba9ba4Schristos   const unsigned long lurk[2] = {laminated, laminated};
94*a1ba9ba4Schristos   const float lush[2] = {lampoon, lampoon};
95*a1ba9ba4Schristos   const double lynx[2] = {languid, languid};
96*a1ba9ba4Schristos 
97*a1ba9ba4Schristos   /* volatile variables */
98*a1ba9ba4Schristos 
99*a1ba9ba4Schristos   volatile char vox = 'X';
100*a1ba9ba4Schristos   volatile unsigned char victuals = 13;
101*a1ba9ba4Schristos   volatile short vixen = 200;
102*a1ba9ba4Schristos   volatile unsigned short vitriol = 300;
103*a1ba9ba4Schristos   volatile long vellum = 1000;
104*a1ba9ba4Schristos   volatile unsigned long valve = 2000;
105*a1ba9ba4Schristos   volatile float vacuity = 3.0;
106*a1ba9ba4Schristos   volatile double vertigo = 10.3;
107*a1ba9ba4Schristos 
108*a1ba9ba4Schristos   /* pointers to volatile variables */
109*a1ba9ba4Schristos 
110*a1ba9ba4Schristos   volatile char           * vampire = &vox;
111*a1ba9ba4Schristos   volatile unsigned char  * viper  = &victuals;
112*a1ba9ba4Schristos   volatile short          * vigour = &vixen;
113*a1ba9ba4Schristos   volatile unsigned short * vapour = &vitriol;
114*a1ba9ba4Schristos   volatile long           * ventricle = &vellum;
115*a1ba9ba4Schristos   volatile unsigned long  * vigintillion = &valve;
116*a1ba9ba4Schristos   volatile float          * vocation = &vacuity;
117*a1ba9ba4Schristos   volatile double         * veracity = &vertigo;
118*a1ba9ba4Schristos 
119*a1ba9ba4Schristos   /* volatile pointers to volatile variables */
120*a1ba9ba4Schristos 
121*a1ba9ba4Schristos   volatile char           * volatile vapidity = &vox;
122*a1ba9ba4Schristos   volatile unsigned char  * volatile velocity = &victuals;
123*a1ba9ba4Schristos   volatile short          * volatile veneer = &vixen;
124*a1ba9ba4Schristos   volatile unsigned short * volatile video = &vitriol;
125*a1ba9ba4Schristos   volatile long           * volatile vacuum = &vellum;
126*a1ba9ba4Schristos   volatile unsigned long  * volatile veniality = &valve;
127*a1ba9ba4Schristos   volatile float          * volatile vitality = &vacuity;
128*a1ba9ba4Schristos   volatile double         * volatile voracity = &vertigo;
129*a1ba9ba4Schristos 
130*a1ba9ba4Schristos   /* volatile arrays */
131*a1ba9ba4Schristos   volatile char violent[2] = {vox, vox};
132*a1ba9ba4Schristos   volatile unsigned char violet[2] = {victuals, victuals};
133*a1ba9ba4Schristos   volatile short vips[2] = {vixen, vixen};
134*a1ba9ba4Schristos   volatile unsigned short virgen[2] = {vitriol, vitriol};
135*a1ba9ba4Schristos   volatile long vulgar[2] = {vellum, vellum};
136*a1ba9ba4Schristos   volatile unsigned long vulture[2] = {valve, valve};
137*a1ba9ba4Schristos   volatile float vilify[2] = {vacuity, vacuity};
138*a1ba9ba4Schristos   volatile double villar[2] = {vertigo, vertigo};
139*a1ba9ba4Schristos 
140*a1ba9ba4Schristos   /* const volatile vars */
141*a1ba9ba4Schristos 
142*a1ba9ba4Schristos   const volatile char           victor = 'Y';
143*a1ba9ba4Schristos   const volatile unsigned char  vicar = 11;
144*a1ba9ba4Schristos 
145*a1ba9ba4Schristos   /* pointers to const volatiles */
146*a1ba9ba4Schristos 
147*a1ba9ba4Schristos   const volatile char              * victory = &victor;
148*a1ba9ba4Schristos   const volatile unsigned char     * vicarage = &vicar;
149*a1ba9ba4Schristos 
150*a1ba9ba4Schristos   /* const pointers to volatile vars */
151*a1ba9ba4Schristos 
152*a1ba9ba4Schristos   volatile char                    * const vein = &vox;
153*a1ba9ba4Schristos   volatile unsigned char           * const vogue = &victuals;
154*a1ba9ba4Schristos 
155*a1ba9ba4Schristos   /* const pointers to const volatile vars */
156*a1ba9ba4Schristos 
157*a1ba9ba4Schristos   const volatile char              * const cavern = &victor;
158*a1ba9ba4Schristos   const volatile unsigned char     * const coverlet = &vicar;
159*a1ba9ba4Schristos 
160*a1ba9ba4Schristos   /* volatile pointers to const vars */
161*a1ba9ba4Schristos 
162*a1ba9ba4Schristos   const char                       * volatile caveat = &laconic;
163*a1ba9ba4Schristos   const unsigned char              * volatile covenant = &laggard;
164*a1ba9ba4Schristos 
165*a1ba9ba4Schristos   /* volatile pointers to const volatile vars */
166*a1ba9ba4Schristos 
167*a1ba9ba4Schristos   const volatile char              * volatile vizier = &victor;
168*a1ba9ba4Schristos   const volatile unsigned char     * volatile vanadium = &vicar;
169*a1ba9ba4Schristos 
170*a1ba9ba4Schristos   /* const volatile pointers */
171*a1ba9ba4Schristos 
172*a1ba9ba4Schristos   char                             * const volatile vane = &lave;
173*a1ba9ba4Schristos   unsigned char                    * const volatile veldt = &lavish;
174*a1ba9ba4Schristos 
175*a1ba9ba4Schristos   /* const volatile pointers to const vars */
176*a1ba9ba4Schristos 
177*a1ba9ba4Schristos   const char                       * const volatile cove = &laconic;
178*a1ba9ba4Schristos   const unsigned char              * const volatile cavity = &laggard;
179*a1ba9ba4Schristos 
180*a1ba9ba4Schristos   /* const volatile pointers to volatile vars */
181*a1ba9ba4Schristos 
182*a1ba9ba4Schristos   volatile char                    * const volatile vagus = &vox;
183*a1ba9ba4Schristos   volatile unsigned char           * const volatile vagrancy = &victuals;
184*a1ba9ba4Schristos 
185*a1ba9ba4Schristos   /* const volatile pointers to const volatile */
186*a1ba9ba4Schristos 
187*a1ba9ba4Schristos   const volatile char              * const volatile vagary = &victor;
188*a1ba9ba4Schristos   const volatile unsigned char     * const volatile vendor = &vicar;
189*a1ba9ba4Schristos 
190*a1ba9ba4Schristos   /* const volatile arrays */
191*a1ba9ba4Schristos   const volatile char vindictive[2] = {victor, victor};
192*a1ba9ba4Schristos   const volatile unsigned char vegetation[2] = {vicar, vicar};
193*a1ba9ba4Schristos 
194*a1ba9ba4Schristos   /* various structs with const members */
195*a1ba9ba4Schristos 
196*a1ba9ba4Schristos   struct crass { char * const ptr; } crass = { lamprey };
197*a1ba9ba4Schristos   struct crisp { char * const *ptr; } crisp = { &lamprey };
198*a1ba9ba4Schristos 
199*a1ba9ba4Schristos   /* Reference the structs so that they are not discarded.  */
200*a1ba9ba4Schristos   struct crass *creed = &crass;
201*a1ba9ba4Schristos   struct crisp *crow = &crisp;
202*a1ba9ba4Schristos 
203*a1ba9ba4Schristos   /* misc. references */
204*a1ba9ba4Schristos   /*
205*a1ba9ba4Schristos   const char           & radiation = laconic;
206*a1ba9ba4Schristos   volatile signed char & remuneration = lemonade;
207*a1ba9ba4Schristos   */
208*a1ba9ba4Schristos   marker1 ();
209*a1ba9ba4Schristos 
210*a1ba9ba4Schristos 
211*a1ba9ba4Schristos   return 0;
212*a1ba9ba4Schristos }
213