|
|||||||||||
Technical Support Support Resources
Product Information |
ARMCC: Internal Fault 0xda55d9Information in this knowledgebase article applies to:
SYMPTOMProject is built with options --c99 -Otime and -O2 or -O3. On a specific source file, the compiler shows the following message in the build output: Internal fault: [0xda55d9:50#####] in {function_name} Please contact your supplier. CAUSEIn this file, the function from fault message is within the scope of a named register variable and causes the compiler to fault. Arm Compiler 5 does not commit to a successful compile with every use-case of named register variables. See the Restrictions section in the description of named register variables. Here is one code example that can cause the issue. With the compiler command-line options above, use struct b { int w; }; register int a __asm( "r0" ); struct b B; void func1() { char * q; char * c[] = { [0] = "A", [1] = "B", [2] = "C", [3] = "D", [4] = "E", [5] = "F", [6] = "G", [7] = "H", [8] = "I", [9] = "J", [10] = "K", [11] = "L", //comment out this line and compile is successful }; while (1) { if( c[ B.w ] ) q = "A"; } } For this example, a structure or a union can be used as "b". The named register line can also be located in an included header file because this is in the same scope. The function must use a continuous loop, and the array "c" must use designated initializers. RESOLUTIONThe workaround is to wrap the function definition in: #pragma push #pragma O1 //or #pragma Ospace //func1() definition #pragma pop Another workaround is to limit the scope of named register variables to source files that do not use similar code to the example above. STATUSThis issue will not be resolved in Arm Compiler 5. The current development effort is focused on ARM Compiler 6. Critical issues in Arm Compiler 5 will be resolved and some safety-critical versions will still be maintained, but major new features, like including new ways to handle named register variables, will not be added to Arm Compiler 5. MORE INFORMATION
Last Reviewed: Monday, January 11, 2021 | ||||||||||
|
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.