I was looking at the Gump results for an unrelated project and noticed that apr-util-make and apr-iconv-make had been broken since 2005-11-10. The message is:

iconv_ces_euc.c: In function 'apr_iconv_euc_open':
iconv_ces_euc.c:65: error: invalid lvalue in assignment

The offending line is in /apr/apr-iconv/trunk/lib/iconv_ces_euc.c is

        CESTOSTATE(ces) = state;

The code hasn't been changed in over a year, so I'm guessing the failure is due to a change in the compiler on the Gump box. I recall encountering problems with this line in other compilers, but I could not a patch in my previous bug reports.

When the CESTOSTATE macro, defined earlier in the file, is expanded the line becomes:

((iconv_ces_euc_state_t *)(ces)->data) = state;

Apparently earlier versions of GCC allowed the assignment to a cast operator, perhaps only in cases where the types match. If the line is changed to:

ces->data = state;

I think all compilers would be happy, but haven't checked it myself.

Reply via email to