armclang bug!

When I used armclang to compile the code of arm cm7, I found a surprising bug in armclang, which is manifested in the following assembly instructions generated under -O2/-Os/-Ofast/-O3/-Os/....: 

__asm("ldr r5,=0x20010402");

__asm("ldr r7,=0x55f4");

__asm("strbt r7,[r5,#6]");

The CPU is in privileged mode all the time.when the CPU executes the STRBT instruction, it enters the memmanage_handler interrupt function.

Arm A-profile A32/T32 Instruction Set Architecture

solution: even in privileged mode, the MPU must be configured, as the machine instructions generated by the compiler may cause memmanage errors.

config all ram area: full access ,BUFFERABLE,CACHEABLE,SHAREABLE,LEVEL0

so I think it's a compiler bug.

armclang version:

.\armclang.exe -v
Product: MDK Professional 5.36
Component: ARM Compiler 6.16
Tool: armclang [5dfeb700]