gcc NULL strings passed from ternary operators in kernel modules

From: Jeffrey Merkey
Date: Thu Jan 13 2011 - 02:53:53 EST


interesting case with gcc. The following code example:

printk("%s\n", (value & 1) "set": "clear");

will evaluate to NULL unless the ":" character has a space after
static string declaration.

this version

printk("%s\n", (value & 1) "set" : "clear");

works.

go figure. Looks like gcc assumes this case is a C++ construct of
some sort and
evaluates it to NULL.

Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/