xref: /illumos-gate/usr/src/tools/smatch/src/validation/preprocessor/preprocessor6.c (revision 44bf619d328827ce5eca6833fcd5c69f1592e578)
1 /* We used to get '##' wrong for the kernel.
2  *
3  * It could possibly be argued that the kernel usage is undefined (since the
4  * different sides of the '##' are not proper tokens), but we try to do it
5  * right anyway.
6  *
7  * We used to break up the "003d" into two tokens ('003' and 'd') and then put
8  * the 'o' marker to mark the token 003 as an octal number, resulting in:
9  *
10  *	static char __vendorstr_o03 d [ ] __devinitdata = "Lockheed Martin-Marietta Corp";
11  *
12  * which didn't work, of course.
13  */
14 
15 #define __devinitdata __attribute__((section(".devinit")))
16 
17 #define VENDOR( vendor, name ) \
18 	static char __vendorstr_##vendor[] __devinitdata = name;
19 VENDOR(003d,"Lockheed Martin-Marietta Corp")
20 
21 /*
22  * check-name: Preprocessor #6
23  * check-command: sparse -E $file
24  *
25  * check-output-start
26 
27 static char __vendorstr_003d[] __attribute__((section(".devinit"))) = "Lockheed Martin-Marietta Corp";
28  * check-output-end
29  */
30