Loose-Info.com

Last Update 2021/01/13


TOP - 各種テスト - gcc - -fallow-parameterless-variadic-functionsオプション

-fallow-parameterless-variadic-functionsオプション
名前付き引数の無い可変個引数関数の有効化

テスト概要

その1
名前付き引数の無い可変個引数関数を含むコードのコンパイル
-fallow-parameterless-variadic-functionsオプションを使用
PASS コンパイル終了・実行ファイル生成
その2
名前付き引数の無い可変個引数関数を含むコードのコンパイル
-fallow-parameterless-variadic-functionsオプション無しで実行
FAIL 名前付き引数が無い事によるエラー発生・停止

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。

使用ファイル


main.c
/* -fallow-parameterless-variadic-functions オプション動作確認用ソースファイル main.c */ #include <stdio.h> #include <stdarg.h> int sampFunc(...) /* 名前付き引数の無い可変個引数関数 */ { return 1; } int main(void) { int n = sampFunc(3); printf("n = %d\n", n); return 0; }

その1

-fallow-parameterless-variadic-functionsオプションを使用

コンパイル実行
$ gcc -v -fallow-parameterless-variadic-functions main.c Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v main.c ... -fallow-parameterless-variadic-functions ... as -v --64 -o /tmp/ccBJcMkP.o /tmp/cctHEbjN.s COLLECT_GCC_OPTIONS='-v' '-fallow-parameterless-variadic-functions' '-mtune=generic' '-march=x86-64' $ ./a.out n = 1 $ コンパイル終了・実行ファイル生成

その2

-fallow-parameterless-variadic-functionsオプション無しで実行

コンパイル実行
$ gcc -v main.c Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v main.c ... main.c:5:14: error: ISO C requires a named argument before ‘...’ int sampFunc(...) 名前付き引数が無い事によるエラー ^~~ $ エラー発生・停止