From: Erik H. <er...@eh...> - 2006-01-03 17:18:33
|
Mathias Fröhlich wrote: > I am not sure, but for the first thing, the lines around 427 look suspicious > to me. They also reference opTop from the ctx variable which is modified by > the macro. > I believe that the order of the increment and the assignent of the array is > undefined in this macro expansion. > I beileve that the compiler might be free to interpret the following: > > ctx->opStack[ctx->opTop++] = ctx->opStack[ctx->opTop-1]; > > to either: > > int tmpindex = ctx->opTop; > ctx->opStack[tmpindex] = ctx->opStack[ctx->opTop-1]; > ctx->opTop++; > > or > > int tmpindex = ctx->opTop; > ctx->opTop++; > ctx->opStack[tmpindex] = ctx->opStack[ctx->opTop-1]; > > which is obviously not the same. Aha, that might well be the problem then. It would be a good idea to solve this for all platforms (even untested ones) then. > Good detective work Erik! If detective work involves eliminating all possibilities one by one, then you could be right ;-) Erik |