ndk和clang ++中的ARM编译器错误?

no one special 6 c++ arm compiler-errors android-ndk clang++

请考虑以下代码:

float test(int len, int* tab)
{
    for(int i = 0; i<len; i++)
        tab[i] = i;
}

显然回报缺失。对于用于ARM处理器的clang和ndk编译器的这种情况,都会生成一个无限循环。拆卸之后,很明显编译器生成常规分支指令,而不是条件分支。

    mov     r0, #0
.LBB0_1:
    str     r0, [r1, r0, lsl #2]
    add     r0, r0, #1
    b       .LBB0_1

可以在此处找到带有错误的示例:https : //godbolt.org/z/YDSFw-

请注意,c ++规范指出缺少返回值被视为未定义行为,但仅引用返回值。它不会影响前面的说明。

我在这里想念什么吗?有什么想法吗?