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