Andrew Talbot wrote: > James Hawkins wrote: > > >> It's ugly. What warning are you trying to fix? >> >> > > Although I imagine that gcc doesn't do anything particularly adverse as a > result of the existing code, if the pedantic switch were applied it would > cause a message of the following type to be generated. > > action.c:236: error: array size missing in ?StandardActions? > > I believe it is also likely to show up under lint-like tools and I believe > it is actually an error, though compilers are not required to generate any > message, apparently. I couldn't say whether the resultant behaviour is > undefined, implemenation defined, or what. And I don't know whether gcc > places any surplus baggage in any segment as a result. The fix was just to > make the code correct and hence more portable.
This also causes problems when compiling with msvc: > make[1]: Entering directory `/home/rob/wine-msvc/dlls/msi' > CC action.o > action.c > action.c(236) : error C2133: 'StandardActions' : unknown size It also might affect compilers on other platforms that Wine might be ported to. As Andy says, it's non-standard behaviour and so could break even in future versions of gcc. I think the patch could be changed so that very few, if any, forward declarations would need to be made simply by moving ACTION_HandleStandardAction to after StandardActions is initialised. -- Rob Shearman
