John sent me a bunch of output. I chose to look at util.c because its relatively short. After deleting all the __inline__ warnings, there were just two left: ERROR CCN3277 ./util.c.c:23818 Syntax error: possible missing ';' or ','? ERROR CCN3277 ./util.c.c:23819 Syntax error: possible missing ';' or ','? The util.c.c file is what is generated by the preprocessor. The shortest of the errors is line 23819: *(*dest)++ = ((PL_e2a[(U8)(byte)] & ((U8)0x1f)) | 0xA0) PL_utf2e[(U8)((PL_e2a[(U8)(byte)] & ((U8)0x1f)) | 0xA0)]; And yes there is a syntax error there. If you look at the balanced parens, you will note that the first set ends in the middle of the line, and then there is a space and then a PL_utf2e[...]; The latter is a complete subexpression going to the end of the line. So there are two expressions separated by a blank, indeed a syntax error. If you look carefully, that first expression is repeated as a component of the 2nd. It turns out that the correct expansion of the macro is just the 2nd expression. The 1st expression should not be there. The preprocessor is apparently outputting the results of an intermediate stage of its processing! I wonder if some developer left in a debug statement in the preprocessor. But surely it gets enough use that this would have been exposed long before now. So I don't know how to proceed. (Note that this bug would cause huge long expansions when shorter ones would be correct; if fixed, exceeding the apparent 2048 character limit might just go away.) I'm sending this to the whole list in case it rings a bell for someone.Thread Next