А вы листинг выложите как 4.x это транслирует.
У меня 5.11 компилит праивльно, но такой короткий цикл вообще разворачивает
Код
In section .text, align 4, keep-with-next
47 void ListInit(void)
48 {
49 List *pList;
50 int i;
51
52 for (i = 0; i < LIST_CAPACITY-1; i++)
53 {
54 pList = &list[i];
55 pList->Addr = i;
\ ListInit:
\ 00000000 0848 LDR.N R0,??ListInit_0 ;; list
\ 00000002 0021 MOVS R1,#+0
56 pList->Next = &list[i + 1]; //ñòðîêà íå òðàíñëèðóåòñÿ
\ 00000004 0200 MOVS R2,R0
\ 00000006 0832 ADDS R2,R2,#+8
\ 00000008 4260 STR R2,[R0, #+4]
\ 0000000A 0122 MOVS R2,#+1
\ 0000000C 8260 STR R2,[R0, #+8]
\ 0000000E 0200 MOVS R2,R0
\ 00000010 1032 ADDS R2,R2,#+16
\ 00000012 C260 STR R2,[R0, #+12]
\ 00000014 0222 MOVS R2,#+2
\ 00000016 0261 STR R2,[R0, #+16]
\ 00000018 0200 MOVS R2,R0
\ 0000001A 1832 ADDS R2,R2,#+24
\ 0000001C 4261 STR R2,[R0, #+20]
\ 0000001E 0160 STR R1,[R0, #+0]
57 }
58 pList->Next = 0;
\ 00000020 4161 STR R1,[R0, #+20]
59 }
\ 00000022 7047 BX LR ;; return
\ ??ListInit_0:
\ 00000024 ........ DC32 list
А 4.42 тоже глючит
Код
11 void ListInit(void)
12 {
13 List *pList;
14 int i;
15
16 for (i = 0; i < LIST_CAPACITY-1; i++)
\ ListInit:
\ 00000000 0020 MOVS R0,#+0
\ 00000002 0021 MOVS R1,#+0
17 {
18 pList = &list[i];
\ ??ListInit_0:
\ 00000004 044A LDR.N R2,??ListInit_1 ;; list
\ 00000006 12EBC102 ADDS R2,R2,R1, LSL #+3
19 pList->Addr = i;
\ 0000000A 1160 STR R1,[R2, #+0]
20 pList->Next = &list[i + 1]; //строка не транслируется
21 }
\ 0000000C 491C ADDS R1,R1,#+1
\ 0000000E 0329 CMP R1,#+3
\ 00000010 F8DB BLT.N ??ListInit_0
22 pList->Next = 0;
\ 00000012 5060 STR R0,[R2, #+4]
23 }
\ 00000014 7047 BX LR ;; return
\ 00000016 00BF Nop
\ ??ListInit_1:
\ 00000018 ........ DC32 list