Hello,
I'v got wrong ASM code compiling following statement with -o1 optimization (C-compiler V5.2.11):
SysSup_Fault2 = (((((((((((((((IEM_MCP_C0_B.shift_irm4 |
IEM_MCP_C0_B.SysSupFlt_HvDcUnplug) | ((uint32_T)IEM_MCP_C0_B.FaultFilt_evgd))
| ((uint32_T)IEM_MCP_C0_B.FaultFilt_jtcz)) | ((uint32_T)
IEM_MCP_C0_B.shift_fwl4)) | ((uint32_T)(IEM_MCP_C0_B.Rx_SRS_00 ? 3072 : 0)))
| IEM_MCP_C0_B.Fault_TrqReq) | IEM_MCP_C0_B.Fault_TrqLim) |
IEM_MCP_C0_B.Fault_CheckMotorSpd) | (((uint32_T)IEM_MCP_C0_B.UnitDelay3_hup5)
<< 2)) | IEM_MCP_C0_B.Fault_UBat) | ((uint32_T)
IEM_MCP_C0_B.Fault_SpdUnreliable)) | IEM_MCP_C0_B.shift_gfts) |
IEM_MCP_C0_B.shift_eryt) | (((uint32_T)IEM_MCP_C0_B.Flt32) <<
30)) | ((IEM_MCP_C0_B.Tlbx_TransientFilterValidB_djuq.BitwiseOperator == 3U)
? 3145728UL : 0UL)) | 357913937UL;
The bug seems to be fixed with C-compiler V5.2.12
In Defect History of 5.2.12 is written:
------------------------------------------------------------------------------
FIXED SDSCM00039478
------------------------------------------------------------------------------
FIXED SDSCM00039478
------------------------------------------------------------------------------
Summary : Compiler generates incorrect code when optimization is enabled
Fixed in : 5.2.12
Severity : S2 - Major
Affected Component : Optimizer
Severity : S2 - Major
Affected Component : Optimizer
Is there a detailed explanation of fix SDSCM00039478 available?
I need to know if the fix SDSCM00039478 made my code working or if this is just a side effect!
regards
Konrad Bertignoll