7 Replies Latest reply on Jan 21, 2014 12:49 PM by user_1377889

    compiler produce wrong code!

    sebastian.seczkowski

      The code I show create endless loop (line 671 branch to line above)

         

      Innocent end of switch statement:

         

      case TSH:

         

      // some calculations

         

                          break;
                          default:
                          break;
                      }

         

      And assembly:

         

      664 01e6 FFF7FEFF         bl    mymemcpy
       665                  .LVL57:
       217:.\Uart.c      ****                     break;
       666                      .loc 1 217 0
       667 01ea 00E0             b    .L23
       668                  .LVL58:
       669                  .L26:
       670                  .L80:
       671 01ec FEE7             b    .L80
       672                  .LVL59:
       673                  .L23:
       674                  .LBE23:
       231:.\Uart.c      ****     }
       675                      .loc 1 231 0
       676                      @ sp needed for prologue
       677                  .LVL60:
       678 01ee F7BD             pop    {r0, r1, r2, r4, r5, r6, r7, pc}
       679                  .L85: