This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ISO:C90-5.2.4.1 Translation Limits

Hi,

I get a translation limit message from PRQA when run on my source as follows:

Msg(6:0612) [L] Size of object 'ramAdc1' exceeds 32767 bytes - program does not conform strictly to ISO:C90.
MISRA C:2012 Dir-1.1; REFERENCE - ISO:C90-5.2.4.1 Translation Limits

By all accounts my CGT v5.0.11 correctly handles objects greater than 32767 bytes, that is, my implementation works.

Can you please confirm that CGT v5.0.11 will correctly handle objects greater than 32767 bytes in size, and ideally, point me at some documentation that says such.

Regards, Tony.

  • From the compiler version you cite, I presume you are using the TI ARM compiler. Yes, the TI ARM compiler can handle objects of much greater size. I'm sorry, we don't have any specific documentation (yet) about maximum object size. I've submitted SDSCM00051652 to request documentation of this and other implementation-defined limits. Due to an unintended limitation in the compiler (SDSCM00043877), the maximum size for an individual object is approximately 256 MB.
  • Hi,
    With the changed E2E interface I can't seem to find the database where I might inspect these SDSCM submissions.
    Regards, Tony.

  • Tony,

    You are right. I don't see links to Resources such as the bug tracking database from the main Compiler forums page. I will look into getting that added.

    In the meantime, you can click on the SDOWP link in my signature to get there.

  • Hi Archaeologist,

    Are you able to make a statement about the number of levels of nested conditional inclusions as well. I get a translation limit failure from PRQA warning that I have more than 8 levels of nested conditional inclusion.

    Regards,
    Tony.
  • Hi Aarti,

    Did you have any joy getting a visible link to SDOWP? I still can't find it...

    Regards, Tony.
  • In the main forum view, on the right side, under TI C/C++ Compiler Resources, use the link titled Bug tracking.  Or, you can use the SDOWP link below in my signature.  The underlying web address is the same for both of them.

    Thanks and regards,

    -George

  • Hi Archaeologist,
    I wonder when we might see some progress on SDSCM00051652. This has been classed as 'Major' but nothing has happened yet.
    Regards, Tony.
  • With regards to the maximum size of a data object in a given source file, the answer is a little tricky for the TI TMS470 compiler.

    With no MISRA error checking enabled, a single data object (an array of unsigned char, for example) in a single source file must be smaller than 512 MB. However, if there is more than one data object defined in a source file and the data object definitions are grouped together in the same uninitialized data section (i.e. .usect or .bss section), then the total size of the group of data object definitions must be less than 512 MB. The maximum size of any one data object in a group is dependent on the accumulated size of the other data objects that are defined in the same group.

    I have not tried experimenting with nested conditional inclusions yet.

    Regards,

    Todd Snider

    Compiler Support Team
    Texas Instruments Incorporated
  • Experimenting with the nesting of conditional inclusion directives (#if/#elif/#else/#endif and the #ifdef and #ifndef variations), the ANSI C standard requires that an implementation support at least 63 levels of nesting. The TI TMS470 v5.0.11 compiler supports at least 256 levels of nested conditional inclusion preprocessing directives.
  • Hi Todd,
    Sorry for my tardy response (because of another issue raised elsewhere I have all notification turned off at the moment).
    I'm interested in where these limits are documented, if they have been yet.
    Things have moved on from my original post and I am now using TI TMS570 v5.2.7 for which I am interested in the same limits.
    Regards,
    Tony.