テストプログラム compiler test suite

コンパイラは非常に高度なソフトウェアです。そのためコンパイラのテストには膨大な組み合わせを網羅したテストケースを必要とし、それこそ天文学的な組み合わせ数となります。

私どもは日々テストプログラムの拡充に努めており、その結果開発されたコンパイラ品質検証のテストスイートは、世界最大の規模を誇っております。

  テスト本数 対応仕様 テスト内容
C 約49万本
  • ISO/IEC 9899:1990 (C90)
  • ISO/IEC 9899:1999 (C99)
  • ISO/IEC 9899:2011 (C11)
  • 定数(整数、文字、浮動小数点など)
  • 変数(extern、autoなど)
  • 配列(一次元、二次元、多次元、可変長配列など)
  • 構造体/共用体(ビットフィールド、指示付き初期化子など)
  • 演算子(四則演算、論理演算子、ビット演算子など)
  • 関数(引数、宣言など)
  • ポインタ(変数、関数、配列、ポインタなど)
  • 制御構造(switch-case、forなど)
  • _Generic選択
 ...etc
C++ 約38万本
  • ISO/IEC 14882:2003 (C++03)
  • ISO/IEC 14882:2011 (C++11)
  • ISO/IEC 14882:2014 (C++14)
  • ISO/IEC 14882:2017 (C++17)

単純な動作確認から複雑なアルゴリズムを含むものまで、テストプログラムの内容は多岐にわたります。

  • 変数(auto、decltypeなど)
  • 型宣言(ブロック内宣言など)
  • 型修飾子(const定数のマクロ使用など)
  • クラス(public/private、friend、継承など)
  • テンプレート(関数、クラス、変数、可変長引数など)
  • 演算子(::演算子、参照演算子、new/deleteなど)
  • 制御構造(範囲for文、if文とswitch文の初期化文など)
  • キャスト(関数形式など)
  • 関数(オーバーロード、インライン、ラムダ式など)
 ...etc
固定小数点 約8 万本
  • ISO TR
  • ACE
ISO TR特有のmodwrap、ACE仕様特有のcirc等、どちらの仕様にも対応しています。
  • 固定小数点型を使用した四則演算、複合演算
  • オーバーフロー型指定子(saturation/modwrap)を使用したオーバーフロー処理の検証
  • 固定小数点型の型変換処理の検証
 ...etc

Embedded-Cの固定小数点部分を指します

上記の内容は2023年3月現在のものです

ロードマップ

  言語規格 テスト本数/リリース予定 総ライン数
C ISO/IEC 9899:1990 (C90)
ISO/IEC 9899:1999 (C99)
494,000本 2億5,000万行
ISO/IEC 9899:2011 (C11) 1,600本 15万行
ISO/IEC 9899:2018 (C17) ※2023年リリース予定
C++ ISO/IEC 14882:2003 (C++03) 152,000本 6,500万行
ISO/IEC 14882:2011 (C++11) 172,000本 4,300万行
ISO/IEC 14882:2014 (C++14) 59,000本 1,000万行
ISO/IEC 14882:2017 (C++17) 10,000本 150万行
ISO/IEC 14882:2020 (C++20) ※2024年リリース予定

C++コンパイラツールの評価では、Cコンパイラのテストケースも用いて検査します。