root/usr/src/tools/smatch/src/validation/preprocessor/preprocessor6.c
/* We used to get '##' wrong for the kernel.
 *
 * It could possibly be argued that the kernel usage is undefined (since the
 * different sides of the '##' are not proper tokens), but we try to do it
 * right anyway.
 *
 * We used to break up the "003d" into two tokens ('003' and 'd') and then put
 * the 'o' marker to mark the token 003 as an octal number, resulting in:
 *
 *      static char __vendorstr_o03 d [ ] __devinitdata = "Lockheed Martin-Marietta Corp";
 *
 * which didn't work, of course.
 */

#define __devinitdata __attribute__((section(".devinit")))

#define VENDOR( vendor, name ) \
        static char __vendorstr_##vendor[] __devinitdata = name;
VENDOR(003d,"Lockheed Martin-Marietta Corp")

/*
 * check-name: Preprocessor #6
 * check-command: sparse -E $file
 *
 * check-output-start

static char __vendorstr_003d[] __attribute__((section(".devinit"))) = "Lockheed Martin-Marietta Corp";
 * check-output-end
 */