2024-03-29T10:09:59Zhttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_oaipmhoai:ipsj.ixsq.nii.ac.jp:001908892023-11-14T00:51:14Z06164:06165:07651:09542
等価変換に基づくCコンパイラのランダムテストにおける制御文およびデータ型の拡張Enriching Generation of Control Statements and Data Structures for Random Test of C Compilers Based on Equivalence Transformationjpnアルゴリズムhttp://id.nii.ac.jp/1001/00190801/Conference Paperhttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=190889&item_no=1&attribute_id=1&file_no=1Copyright (c) 2018 by the Information Processing Society of Japan関西学院大学関西学院大学関西学院大学高倉, 正悟岩辻, 光功石浦, 菜岐佐本稿では,等価変換に基づく C コンパイラのランダムテストにおける不具合検出能力の向上を目的として,プログラム生成を強化する手法を提案する.等価変換に基づくランダムプログラム生成法は,生成規則のみに基づく生成法に比べて意味まで考慮したプログラムの生成が可能であるが,この方法で生成可能な構文はこれまで代入文,if 文,for 文に限られており,変数もスカラ変数しか扱えなかった.本稿では,制御文に関しては関数呼び出し,while 文,switch 文を生成可能にするとともに,データ型に関しても配列,構造体,共用体およびその任意回のネストを生成可能にする.本手法をランダムテストシステム Orange 4 に追加実装した結果,従来では検出できなかった不具合を検出できるようになり,GCC - 8.0.0 および LLVM / Clang - 6.0 (それぞれ 2017 年 12 月時点における最新バージョンの開発版) において新たな不具合を検出することができた.This article proposes a method of enriching program generation in random testing of C compilers based on equivalence transformation on test programs. While the conventional method based on equivalence transformation can only generate programs with scalar variables, assign statements, if and for statements, the proposed method enables generation of arrays, structs, unions, as well as while and switch andfunction calls. Orange4 C compiler test system extended with the proposed method has detected bugs in the latest development versions of GCC-8.0.0 and LLVM / Clang-6.0 which had been missed by the existing test methods.DAシンポジウム2018論文集20189142018-08-222018-08-15