I've just stumbled on something perplexing. Compiling mod_validator[1],
a large C++ module, for 2.1, I found each entry in the command_rec
generating a syntax error. They are fine with 2.0.x.
The directives are declared with the conventional form:
AP_INIT_TAKE1("ValidatorXSLTBase",
(const char*(*)())ValidatorXSLTBase,
NULL, OR_ALL, "Base for XSLT files" ) ,
with the explicit cast of the function to shut C++ up.
Using the c++ with the -E option, I see that correctly expanded in 2.0 to
{ "ValidatorXSLTBase", (const char*(*)())ValidatorXSLTBase,
__null, (1|2|4|8|16), TAKE1, "Base for XSLT files" } ,
but in 2.1, it expands to
{ "ValidatorXSLTBase", { .take1=(const char*(*)())ValidatorXSLTBase },
__null, (1|2|4|8|16), TAKE1, "Base for XSLT files" } ,
Anyone know what's causing this?
The compiler is gcc-3.3.6.
[1] http://apache.webthing.com/mod_validator/
--
Nick Kew