fpc 3.2.2. OS/2 PMWIN unit
## Summary The {$mode objfpc} switch messes up all integer sizes which implies messing up record sizes as well. For example: types MseMSg, MENUITEM. Consequence is that such records fail to pass their info correctly to other (external) routines. ## System Information <!-- The more information are provided the easier it is to replicate the bug --> - **Operating system:** OS/2 Warp 4.52 Merlin (not critical) - **Compiler version:** 3.2.2 (not critical, 2.6.4 has the same issue) - **Device:** <!-- Computer ## Steps to reproduce <!-- How one can reproduce the issue - this is very important! --> ```program test_menuitemsize; {typedefs below copied from pmwin} uses pmwin; type MENUITEMx = record iPosition : integer; afStyle : word; afAttribute : word; id : word; hwndSubMenu : cardinal; hItem : cardinal; end; begin {my output: 18=wrong 16=OK } writeln('pmwin /x sizeof(MENUITEM) ', sizeof(MENUITEM)); writeln('local sizeof(MENUITEMx) ', sizeof(MENUITEMx)); end. ``` ## Example Project <!-- If possible, please create an example project that exhibits the problematic behavior, and link to it here in the bug report. --> ## What is the current bug behavior? my output: 18=wrong ## What is the expected (correct) behavior? 16 ## Relevant logs and/or screenshots ## Possible fixes see above. Actually only one line needs the switch: the last function declaration using array of const: Function WinSetErrorInfo(ErrID: ErrorID; Flags: Cardinal; Params: Array of const): ErrorID; external 'pmwin' index 263;
issue