テストプログラム 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など)
  • ビットフィールド
 ...etc
C++ 約38万本
  • ISO/IEC 14882:2003 (C++03)
  • ISO/IEC 14882:2011 (C++11)
  • ISO/IEC 14882:2014 (C++14)

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

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

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

上記の内容は2021年4月現在のものです

ロードマップ

  言語規格 テスト本数/リリース予定 総ライン数
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) ※2022年12月リリース予定
ISO/IEC 14882:2020 (C++20) ※2024年リリース予定

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