CC-RL V1.12について

こんにちは。NoMaYです。

アセンブラソースでも以下のメッセージが表示されますけれども、これは消せないのかな?、、、

W0511187:CC-RL V1のオプション"-Odefault"の評価期間の有効期限が切れています。暗黙に"-Olite"指定に変更します。引き続き"-Odefault"を利用したい場合は製品の購入を検討ください。明示的に"-Olite"か"-Onothing"を指定することで、この警告は消えます。

以下、CS+の画面コピーです。


 

Parents
  • こんにちは。NoMaYです。

    CC-RL V1.12のC++14対応に関して、以下のユーザーズマニュアルには以下の通り記載されているのですけれども、実際に試してみると、ユーザーズマニュアルの記載とは異なり、幾つかはC++14モードでは機能が実装されていないようですね。

    ユーザーズマニュアル
    www.renesas.com/us/en/document/mat/cc-rl-c14-technical-preview-version-users-manual#page=13

    3.2 Language extension specifications

    3.2.1 Reserved words

    Please refer to “4.2.1 Reserved words” in the CC-RL User’s Manual for detail of the keywords reserved by CC-RL.


    ユーザーズマニュアル
    www.renesas.com/us/en/document/mat/cc-rl-compiler-users-manual#page=334

    4.2.1 Reserved words

    The CC-RL adds the following characters as reserved words to implement the expanded function. These words are similar to the ANSI C keywords, and cannot be used as a label or variable name.
    Reserved words that are added by the CC-RL are listed below.

    Table 4.9 List of Reserved Words

    Reserved Words Usage
    __saddr        Allocating a static variable to the saddr area
    __callt        Calling a function with the callt instruction
    __near         Specifying memory allocation area
    __far          Specifying memory allocation area
    __inline       Specifying memory allocation area
    __sectop       Section start address
    __secend       Section end address + 1

     
    All names that include two underscores (__) are also invalid as label or variable names.


    ソース: test20230502_3.cpp

    static __inline int language_extension_inline_in_cpp_file(void);
    static __inline int language_extension_inline_in_cpp_file(void)
    {
        return 0b10101010;
    }
    int /*__callt*/ language_extensions_in_cpp_file(void);
    int /*__callt*/ language_extensions_in_cpp_file(void)
    {
        static int /*__saddr*/ sv;
        static int __near nv;
        static int __far fv;
        /* int __far *pt = __sectop( ".bss" ); */
        /* int __far *pe = __secend( ".bss" ); */

        __nop();

        return language_extension_inline_in_cpp_file() + sv + nv + fv /* + *pt + *pe */;
    }

     
    コマンド: test20230502_3.bat

    ccrl -cpu=S3 -lang=cpp14 -Olite -c test20230502_3.cpp


    以下の修飾子や演算子をC++14モードで使用するとコンパイルエラーになる:

    __callt
    __saddr
    __sectop()
    __secend()

     

  • NoMaYさん、中の人です。

    CC-RL C++14テクニカルプレビュー版を試用していただきありがとうございます!

    ご指摘いただいた点については、ユーザーズマニュアル(およびオンラインヘルプ)の不備になります。次のマニュアル改訂時に修正を検討しています。

    なお、C++14テクニカルプレビュー版へのフィードバックはこちらのアンケートからも承っています!
    Renesas Electronics CC-RLコンパイラ C++14テクニカルプレビュー版に関するアンケート (office.com)

    ろしくお願いいたします!

Reply Children