FUNCTION FC 20 : VOID VAR_INPUT VAR1 : BYTE; VAR2 : BYTE; END_VAR BEGIN // Check whether VAR1 (VLB 0) was clobbered. L #VAR1 __ASSERT== __ACCU 1, 1 END_FUNCTION FUNCTION FC 10 : VOID BEGIN L 1 T LB 0 // This directly allocates LB 0 CALL FC 20 ( VAR1 := LB 0, // This 'B#16#0' immediate implicitly allocates // space on the L stack. // It should not overwrite the direct LB 0 allocation. VAR2 := B#16#0, ) END_FUNCTION FUNCTION FC 2 : VOID VAR_INPUT BVAR1 : BOOL; BVAR2 : BOOL; END_VAR BEGIN // Check whether BVAR1 (VLB 0) was clobbered. __STWRST U #BVAR1 __ASSERT== __STW VKE, 1 __STWRST END_FUNCTION FUNCTION FC 1 : VOID BEGIN L 1 T LB 0 // This directly allocates LB 0 CALL FC 2 ( BVAR1 := L 0.0, // This 'FALSE' immediate implicitly allocates // space on the L stack. // It should not overwrite the direct LB 0 allocation. BVAR2 := FALSE, ) END_FUNCTION ORGANIZATION_BLOCK OB 1 BEGIN CALL FC 1 CALL FC 10 CALL SFC 46 // STOP CPU END_ORGANIZATION_BLOCK