e2 studioでC++ソースでのINDEXER/CODANの調子が悪そうなので調べてみようと思います

こんにちは、NoMaYです。

昨日、別スレッドをきっかけに、最近のe2 studioでは(実は結構昔から?)プロジェクトウィザードでGNURXやCC-RXのC++プロジェクトを作成する場合にもRXスマートコンフィグレータを選択可能になっていることを知りました。同時に、C++ソースに対してはCソースよりもe2 studioのINDEXER/CODANの調子が悪そうなことも知りました。そこで、ちょっと調べてみようと思いました。出来れば改善策の落としどころも模索してみたいです。(でも、本来は、ルネサスさんに直して貰うべきものかな、とは思いますが。)

まずは、バグ一覧やFAQに何か記載されているか調べてみましたが、特にはありませんでした。

e² studio 2021-04 バグ一覧 (includeの文字列を検索)
www2.renesas.eu/_custom/software/ree_eclipse/e2studio8/docs/releasenotes/2021_04/openissues.htm

Google検索: "e2 studio" "C++" include site:ja-support.renesas.com/knowledgeBase
www.google.com/search?q=%22e2+studio%22+%22C%2B%2B%22+include+site%3Aja-support.renesas.com%2FknowledgeBase
www.google.com/search?q=%22e2+studio%22+%22C%2B%2B%22+include+site%3Aen-support.renesas.com%2FknowledgeBase

[関連スレッド]
e2 studioでビルドエラーが無いのに編集エラーが表示された時に試すと良いかも(workarounds for INDEXER/CODAN troubles)
japan.renesasrulz.com/cafe_rene/f/forum21/4564/e2-studio-workarounds-for-indexer-codan-troubles

続く。

以下、e2 studioでC++ソースでINDEXER/CODANが誤動作している例の画面コピーです。

現状はC++標準ヘッダファイルのインクルードパスがe2 studioに自動認識されていない


本来は以下のようにC++標準ヘッダファイルのインクルードパスがe2 studioに自動認識されているべき

 

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

    > C++ソース: 赤文字の箇所のようになっているべきな気がするのです (rx-elf-gcc ⇒ rx-elf-g++、 spec.c ⇒ spec.cpp)

    推測ですけれど、これって、e2 studio(あるいはその前身のKPIT Eclipse)でC++プロジェクトがサポートされるようになった時から、ずーっと存在していた、(基本的なことだけれども幸か不幸か誰にも明確には気付かれてなかった)バグなのだろうなぁ、と私は思いました。

    その当時(あるいは暫く後になってEclipseがC/C++の混在をサポートするようになったという可能性もありますが)に、e2 studio(あるいはその前身のKPIT Eclipse)の仕様(Cのみ or C++のみ)とEclipseの仕様(Cのみ or C++ではCとC++で別々に設定が可能)との間の溝を埋めようとして、C++プロジェクトではCソースに関してはGNU99であることに決め打ちしよう、といった判断が行われたのでは無いかと推測するのですが、そしてその結果、Cソースには出所不明の -std=gnu99 が付くことになったのかな、と推測するのですが、そこまでは気付いたけれど、rx-elf-g++にし忘れた(し忘れたままだった)、spec.cppにし忘れた(し忘れたままだった)、のではないかなぁ、と推測します。

    見付けた(と思っている)回避策でどうにかなったとしても、これはルネサスさんに直して欲しいなぁ、と思うのです。

    [追記]

    新人のプログラマさんに画面付きユーザインターフェイスソフトの開発をお願いすると、ダイアログで設定した通りにソフトが動作するかとか、ウィンドウに表示されている内容が正しいかとか、その辺りをチェックせず、ダイアログを閉じて開いたら設定がとりあえず保持されている、ウィンドウにとりあえず何かが表示されている、でコトを済ませてしまうことがありますが、そんな感じだったのかもなぁ、と思ったりします。(でも、今になるまで明確には気付かれなかったのだから、当時のプログラマさんだけがどうのこうのということでも無いだろうなぁ、とも思ったりします。)

Reply
  • こんにちは、NoMaYです。

    > C++ソース: 赤文字の箇所のようになっているべきな気がするのです (rx-elf-gcc ⇒ rx-elf-g++、 spec.c ⇒ spec.cpp)

    推測ですけれど、これって、e2 studio(あるいはその前身のKPIT Eclipse)でC++プロジェクトがサポートされるようになった時から、ずーっと存在していた、(基本的なことだけれども幸か不幸か誰にも明確には気付かれてなかった)バグなのだろうなぁ、と私は思いました。

    その当時(あるいは暫く後になってEclipseがC/C++の混在をサポートするようになったという可能性もありますが)に、e2 studio(あるいはその前身のKPIT Eclipse)の仕様(Cのみ or C++のみ)とEclipseの仕様(Cのみ or C++ではCとC++で別々に設定が可能)との間の溝を埋めようとして、C++プロジェクトではCソースに関してはGNU99であることに決め打ちしよう、といった判断が行われたのでは無いかと推測するのですが、そしてその結果、Cソースには出所不明の -std=gnu99 が付くことになったのかな、と推測するのですが、そこまでは気付いたけれど、rx-elf-g++にし忘れた(し忘れたままだった)、spec.cppにし忘れた(し忘れたままだった)、のではないかなぁ、と推測します。

    見付けた(と思っている)回避策でどうにかなったとしても、これはルネサスさんに直して欲しいなぁ、と思うのです。

    [追記]

    新人のプログラマさんに画面付きユーザインターフェイスソフトの開発をお願いすると、ダイアログで設定した通りにソフトが動作するかとか、ウィンドウに表示されている内容が正しいかとか、その辺りをチェックせず、ダイアログを閉じて開いたら設定がとりあえず保持されている、ウィンドウにとりあえず何かが表示されている、でコトを済ませてしまうことがありますが、そんな感じだったのかもなぁ、と思ったりします。(でも、今になるまで明確には気付かれなかったのだから、当時のプログラマさんだけがどうのこうのということでも無いだろうなぁ、とも思ったりします。)

Children
  • > そこまでは気付いたけれど、rx-elf-g++にし忘れた(し忘れたままだった)、

    gccコマンドが呼ばれても、渡されたファイル名の拡張子で判断してg++が呼ばれるようになっているのでコンパイルは通ります。
    それなりに使えるようになっているからそのままになってしまったのかもしれません。