Keil Logo

What's New in C166 Version 7.52

C166 Version 7.52 Release

Release Date: 15 April 2013

  • [C166 Compiler]
    • Corrected: C166 creates wrong code with OT(8). Example:
      #pragma MODV2 HLARGE OPTIMIZE (8,SPEED)
      
      char ASCII_Data [12];
      
      
       void foo(char typ) {
        signed short i;
      
        i = 0;
        ASCII_Data [i++]  = '#';
        ASCII_Data [i++]  = DataType;
        ASCII_Data [i++]  = '*';                  // This may create wrong code that overwrites 'i'
        ::::::::::::
      
      
    • Corrected: C166 creates word access where byte access would be required. Example:
      #pragma HLARGE MODV2 FIX167 FIXPEC PACK (1)
      
       struct a  {
         unsigned char b0;
         unsigned int  i;
         unsigned char b1;
         unsigned char b2;
         unsigned char b3;
       } m1, m2, m3[5];
      
       void foo(void) {
      
        m3[getindex()].i = m1.b1 = m2.b3;         // This line causes a hardware trap because of a word access to an odd address
      
       }
      
    • Removed unjustified compiler warnings. Example:
      warning C192: '=': value truncated          // Happens when assigning "0" or "1" to a bitfield member.
      
  • [µVision4]
    • This C166 release comes with µVision V4.70.80.0.
    • Refer to Revision History for a complete list.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

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.