コンパイラは非常に高度なソフトウェアです。そのためコンパイラのテストには膨大な組み合わせを網羅したテストケースを必要とし、それこそ天文学的な組み合わせ数となります。
私どもは日々テストプログラムの拡充に努めており、その結果開発されたコンパイラ品質検証のテストスイートは、世界最大の規模を誇っております。

| |
テスト本数 |
対応仕様 |
テスト内容 |
| C |
約50万本 |
- ISO/IEC 9899:1990 (C90)
- ISO/IEC 9899:1999 (C99)
- ISO/IEC 9899:2011 (C11)
- ISO/IEC 9899:2018 (C17)
|
- 定数(整数、文字、浮動小数点など)
- 変数(extern、autoなど)
- 配列(一次元、二次元、多次元、可変長配列など)
- 構造体/共用体(ビットフィールド、指示付き初期化子など)
- 演算子(四則演算、論理演算子、ビット演算子など)
- 関数(引数、宣言など)
- ポインタ(変数、関数、配列、ポインタなど)
- 制御構造(switch-case、forなど)
- _Generic選択
...etc
|
| C++ |
約40万本 |
- ISO/IEC 14882:2003 (C++03)
- ISO/IEC 14882:2011 (C++11)
- ISO/IEC 14882:2014 (C++14)
- ISO/IEC 14882:2017 (C++17)
- ISO/IEC 14882:2020 (C++20)
|
単純な動作確認から複雑なアルゴリズムを含むものまで、テストプログラムの内容は多岐にわたります。
- 変数(auto、decltypeなど)
- 型宣言(ブロック内宣言など)
- 型修飾子(const定数のマクロ使用など)
- クラス(public/private、friend、継承など)
- テンプレート(関数、クラス、変数、可変長引数など)
- 演算子(::演算子、参照演算子、new/deleteなど)
- 制御構造(範囲for文、if文とswitch文の初期化文など)
- キャスト(関数形式など)
- 関数(オーバーロード、インライン、ラムダ式など)
...etc
|
| 固定小数点 |
約8 万本 |
ISO TR特有のmodwrap、ACE仕様特有のcirc等、どちらの仕様にも対応しています。
|
- 固定小数点型を使用した四則演算、複合演算
- オーバーフロー型指定子(saturation/modwrap)を使用したオーバーフロー処理の検証
- 固定小数点型の型変換処理の検証
...etc
|
ロードマップ
| |
言語規格 |
テスト本数 |
総ライン数 |
| C |
ISO/IEC 9899:1990 (C90)
ISO/IEC 9899:1999 (C99)
ISO/IEC 9899:2011 (C11)
ISO/IEC 9899:2018 (C17)
|
505,000本 |
2億6,000万行 |
| C++ |
ISO/IEC 14882:2003 (C++03)
ISO/IEC 14882:2011 (C++11)
ISO/IEC 14882:2014 (C++14)
ISO/IEC 14882:2017 (C++17)
ISO/IEC 14882:2020 (C++20)
|
407,000本 |
1億2,700万行 |
C++コンパイラツールの評価では、Cコンパイラのテストケースも用いて検査します。