Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-9596

Compiler intermittently fails with INTERNAL ERROR: optimizer experienced a segmentation fault

    XMLWordPrintable

Details

    • Bug
    • Status: Fixed
    • Medium
    • Resolution: Fixed
    • Code Generation Tools
    • CODEGEN-7011
    • Hide
      C6000_8.2.0
      C2000_18.1.0.LTS
      C6000_8.3.0
      MSP430_20.2.0.LTS
      C7000_1.4.0.LTS*
      ARM_18.12.0.LTS
      PRU_2.3.0
      ARM_20.2.0.LTS
      C2000_20.2.0.LTS
      ARM_18.1.0.LTS
      MSP430_18.1.0.LTS
      PRU_2.4.0*
      MSP430_18.12.0.LTS
      C2000_18.12.0.LTS
      Show
      C6000_8.2.0 C2000_18.1.0.LTS C6000_8.3.0 MSP430_20.2.0.LTS C7000_1.4.0.LTS* ARM_18.12.0.LTS PRU_2.3.0 ARM_20.2.0.LTS C2000_20.2.0.LTS ARM_18.1.0.LTS MSP430_18.1.0.LTS PRU_2.4.0* MSP430_18.12.0.LTS C2000_18.12.0.LTS
    • Hide
      ARM_18.12.5.LTS
      MSP430_20.2.0.LTS
      MSP430_18.1.8.LTS
      ARM_20.2.0.LTS
      C2000_20.2.0.LTS
      MSP430_18.12.5.LTS
      C2000_18.12.5.LTS
      PRU_2.4.0*
      ARM_18.1.8.LTS
      C2000_18.1.8.LTS
      C6000_8.3.6
      PRU_2.3.4*
      C6000_8.2.9
      Show
      ARM_18.12.5.LTS MSP430_20.2.0.LTS MSP430_18.1.8.LTS ARM_20.2.0.LTS C2000_20.2.0.LTS MSP430_18.12.5.LTS C2000_18.12.5.LTS PRU_2.4.0* ARM_18.1.8.LTS C2000_18.1.8.LTS C6000_8.3.6 PRU_2.3.4* C6000_8.2.9
    • default
    • Hide
      Compile at -o1 or less; the pass with the bug runs only at -o2 or greater. In this particular case, making m_register_address a regular field instead of a bitfield will also avoid the issue. There isn't a simple change to the source that might avoid it in the general case; avoidance requires that several aspects that combine for the error, don't combine.
      Show
      Compile at -o1 or less; the pass with the bug runs only at -o2 or greater. In this particular case, making m_register_address a regular field instead of a bitfield will also avoid the issue. There isn't a simple change to the source that might avoid it in the general case; avoidance requires that several aspects that combine for the error, don't combine.
    • Hide
      If a struct contains a bitfield, and a function contains both a read and a write of that bitfield, and the expression written includes an operation (such as '&' with a constant) that truncates the value in the same way that the bitfield write does, then the optimiser may crash due to a bad memory access.

      The important detail is the write to the bitfield. Note that field writes in C++ don't look struct accesses, but are. Also note that the compiler can inline calls and rearrange code to create the problematic situation in ways that are not obvious.
      Show
      If a struct contains a bitfield, and a function contains both a read and a write of that bitfield, and the expression written includes an operation (such as '&' with a constant) that truncates the value in the same way that the bitfield write does, then the optimiser may crash due to a bad memory access. The important detail is the write to the bitfield. Note that field writes in C++ don't look struct accesses, but are. Also note that the compiler can inline calls and rearrange code to create the problematic situation in ways that are not obvious.

    Description

      Compiler intermittently fails with INTERNAL ERROR: opt2000 experienced a segmentation fault

      Attachments

        Activity

          People

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: