Compiler hang/crash when loading/storing to addresses that are sums and include a left shift operation

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Medium
    • Code Generation Tools
    • CODEGEN-14896
    • C29_2.1.0.STS
    • C29_2.2.0.LTS*
    • default
    • Hide
      Current workarounds are to mark the manipulated address as volatile or run at -O0, this will disable the compiler transformation causing the stall.

      uint32 volatile shift = ((*address + 1000U) << 5);
      Show
      Current workarounds are to mark the manipulated address as volatile or run at -O0, this will disable the compiler transformation causing the stall. uint32 volatile shift = ((*address + 1000U) << 5);

      For this source code ...

      typedef unsigned int uint32;
      uint32 AddressManipulation(const uint32 * address)
      {
          uint32 shift = ((*address + 1000U) << 5);
          
          /* Compilation hangs during translation while resolving the load/store of an address that has been manipulated by a shifted sum. */
          return *(volatile uint32 *)shift;
      }

            Assignee:
            TI User
            Reporter:
            TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-6323 - Compiler hang/crash when loading/st...
                SYNCHRONIZED
                • Last Sync Date: