Loose-Info.com

Last Update 2021/01/13


TOP - 各種テスト - gcc - -fno-asmオプション

-fno-asmオプション
asm、inline、typeofをキーワードから除外。
__asm__、__inline__、 __typeof__で代用可能

テスト結果リスト(コンパイル実行結果)

asm、inline、typeof をキーワードとして記述したコードと、 識別子として記述したコードを、4種の言語標準にて各々コンパイルを実行
その1 asmキーワード記述
-fno-asm c90 c99 gnu90 gnu99
無し FAIL FAIL PASS PASS
有り FAIL FAIL FAIL FAIL
その2 asm識別子記述
-fno-asm c90 c99 gnu90 gnu99
無し PASS PASS FAIL FAIL
有り PASS PASS PASS PASS
その3 inlineキーワード記述
-fno-asm c90 c99 gnu90 gnu99
無し FAIL PASS PASS PASS
有り FAIL PASS FAIL PASS
その4 inline識別子記述
-fno-asm c90 c99 gnu90 gnu99
無し PASS FAIL FAIL FAIL
有り PASS FAIL PASS FAIL
typeofキーワード記述
-fno-asm c90 c99 gnu90 gnu99
無し FAIL FAIL PASS PASS
有り FAIL FAIL FAIL FAIL
typeof識別子記述
-fno-asm c90 c99 gnu90 gnu99
無し PASS PASS FAIL FAIL
有り PASS PASS PASS PASS

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1

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

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

その1

sample1.c
/* -fno-asm オプション動作確認用ソースファイル(1) */ #include <stdio.h> int main(void) { asm("/* asm */"); /* asmの使用 */ __asm__("/* __asm__ */"); /* __asm__の使用 */ printf("-fno-asm オプション動作確認用ソースファイル\n"); return 0; }

-fno-asm無しでコンパイル実行
$ gcc -v -std=c90 sample1.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccPmbbBf.o /tmp/ccRq8RmF.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... /usr/bin/ld: /tmp/ccPmbbBf.o: in function `main': sample1.c:(.text+0xf): undefined reference to `asm' asm の未定義エラー collect2: error: ld returned 1 exit status エラー発生・停止 $ gcc -v -std=c99 sample1.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample1.c: In function ‘main’: sample1.c:7:2: warning: implicit declaration of function ‘asm’ [-Wimplicit-function-declaration] asm("/* asm */"); /* asmの使用 */ 関数 asm の暗黙宣言警告 ^~~ COLLECT_GCC_OPTIONS='-v' '-std=c99' '-mtune=generic' '-march=x86-64' as -v --64 -o /tmp/ccvf37mW.o /tmp/ccrI5nFA.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... /usr/bin/ld: /tmp/ccvf37mW.o: in function `main': sample1.c:(.text+0xf): undefined reference to `asm' asm の未定義エラー collect2: error: ld returned 1 exit status エラー発生・停止 $ gcc -v -std=gnu90 sample1.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccLk9htR.o /tmp/ccJuGbh4.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu90' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu99 sample1.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccoLprvV.o /tmp/ccKE136k.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル コンパイル終了・実行ファイル生成

-fno-asm有りでコンパイル実行
$ gcc -v -std=c90 -fno-asm sample1.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccIEQyT9.o /tmp/ccfvQMaD.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... /usr/bin/ld: /tmp/ccIEQyT9.o: in function `main': sample1.c:(.text+0xf): undefined reference to `asm' asm の未定義エラー collect2: error: ld returned 1 exit status エラー発生・停止 $ gcc -v -std=c99 -fno-asm sample1.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample1.c: In function ‘main’: sample1.c:7:2: warning: implicit declaration of function ‘asm’ [-Wimplicit-function-declaration] asm("/* asm */"); /* asmの使用 */ 関数 asm の暗黙宣言警告 ^~~ COLLECT_GCC_OPTIONS='-v' '-std=c99' '-fno-asm' '-mtune=generic' '-march=x86-64' as -v --64 -o /tmp/ccbSW3FI.o /tmp/ccnrYFhZ.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... /usr/bin/ld: /tmp/ccbSW3FI.o: in function `main': sample1.c:(.text+0xf): undefined reference to `asm' asm の未定義エラー collect2: error: ld returned 1 exit status エラー発生・停止 $ gcc -v -std=gnu90 -fno-asm sample1.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccV0X6yW.o /tmp/cc7mjOW1.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... /usr/bin/ld: /tmp/ccV0X6yW.o: in function `main': sample1.c:(.text+0xf): undefined reference to `asm' asm の未定義エラー collect2: error: ld returned 1 exit status エラー発生・停止 $ gcc -v -std=gnu99 -fno-asm sample1.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample1.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample1.c: In function ‘main’: sample1.c:7:2: warning: implicit declaration of function ‘asm’ [-Wimplicit-function-declaration] asm("/* asm */"); /* asmの使用 */ 関数 asm の暗黙宣言警告 ^~~ COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-fno-asm' '-mtune=generic' '-march=x86-64' as -v --64 -o /tmp/ccd2femf.o /tmp/ccmiNmPg.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... /usr/bin/ld: /tmp/ccd2femf.o: in function `main': sample1.c:(.text+0xf): undefined reference to `asm' asm の未定義エラー collect2: error: ld returned 1 exit status

その2

sample2.c
/* -fno-asm オプション動作確認用ソースファイル(2) */ #include <stdio.h> int main(void) { int asm; /* asmの識別子として使用 */ __asm__("/* __asm__ */"); /* __asm__の使用 */ asm = 1; printf("-fno-asm オプション動作確認用ソースファイル\n"); printf("asm = %d\n", asm); return 0; }

-fno-asm無しでコンパイル実行
$ gcc -v -std=c90 sample2.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cckqYH04.o /tmp/ccqeRlVh.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c90' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル asm = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=c99 sample2.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccoqqQiW.o /tmp/ccNx6YdD.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c99' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル asm = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu90 sample2.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample2.c: In function ‘main’: sample2.c:7:6: error: expected identifier or ‘(’ before ‘asm’ asm がキーワードと認識されエラー発生 int asm; /* asmの識別子として使用 */ ^~~ sample2.c:10:6: error: expected ‘(’ before ‘=’ token asm = 1; ^ ( sample2.c:10:6: error: expected expression before ‘=’ token sample2.c:13:23: error: expected expression before ‘asm’ printf("asm = %d\n", asm); ^~~ エラー発生・停止 $ gcc -v -std=gnu99 sample2.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample2.c: In function ‘main’: sample2.c:7:6: error: expected identifier or ‘(’ before ‘asm’ asm がキーワードと認識されエラー発生 int asm; /* asmの識別子として使用 */ ^~~ sample2.c:10:6: error: expected ‘(’ before ‘=’ token asm = 1; ^ ( sample2.c:10:6: error: expected expression before ‘=’ token sample2.c:13:23: error: expected expression before ‘asm’ printf("asm = %d\n", asm); ^~~ エラー発生・停止

-fno-asm有りでコンパイル実行
$ gcc -v -std=c90 -fno-asm sample2.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccvhOsPg.o /tmp/ccK65r3L.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c90' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル asm = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=c99 -fno-asm sample2.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccik2QEG.o /tmp/ccc0GIkU.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c99' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル asm = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu90 -fno-asm sample2.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccByKZJF.o /tmp/ccDHzK86.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu90' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル asm = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu99 -fno-asm sample2.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample2.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccdVC2hL.o /tmp/ccOFRrLv.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル asm = 1 コンパイル終了・実行ファイル生成

その3

sample3.c
/* -fno-asm オプション動作確認用ソースファイル(3) */ #include <stdio.h> static inline int sampFunc1(void) /* inlineの使用 */ { return 1; } static __inline__ int sampFunc2(void) /* __inline__の使用 */ { return 2; } int main(void) { printf("-fno-asm オプション動作確認用ソースファイル\n"); printf("sampFunc1 = %d\n", sampFunc1()); printf("sampFunc2 = %d\n", sampFunc2()); return 0; }

-fno-asm無しでコンパイル実行
$ gcc -v -std=c90 sample3.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 84637943c330ccfe91c8483610cbfda9 sample3.c:5:14: error: expected ‘;’ before ‘int’ static inline int sampFunc1(void) /* inlineの使用 */ inline がキーワードと認識されずエラー発生 ^~~~ ; エラー発生・停止 $ gcc -v -std=c99 sample3.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccG81F4o.o /tmp/ccQrcZGi.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c99' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル sampFunc1 = 1 sampFunc2 = 2 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu90 sample3.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccI1Zgzk.o /tmp/cc79iMCB.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu90' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル sampFunc1 = 1 sampFunc2 = 2 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu99 sample3.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccljg3li.o /tmp/ccgMY5DJ.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル sampFunc1 = 1 sampFunc2 = 2 コンパイル終了・実行ファイル生成

-fno-asm有りでコンパイル実行
$ gcc -v -std=c90 -fno-asm sample3.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample3.c:5:14: error: expected ‘;’ before ‘int’ static inline int sampFunc1(void) /* inlineの使用 */ inline がキーワードと認識されずエラー発生 ^~~~ ; エラー発生・停止 $ gcc -v -std=c99 -fno-asm sample3.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cc621prJ.o /tmp/ccQoJABZ.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c99' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル sampFunc1 = 1 sampFunc2 = 2 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu90 -fno-asm sample3.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample3.c:5:14: error: expected ‘;’ before ‘int’ static inline int sampFunc1(void) /* inlineの使用 */ inline がキーワードと認識されずエラー発生 ^~~~ ; エラー発生・停止 $ gcc -v -std=gnu99 -fno-asm sample3.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample3.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cc1vfVek.o /tmp/ccvOIVgi.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル sampFunc1 = 1 sampFunc2 = 2 コンパイル終了・実行ファイル生成

その4

sample4.c
/* -fno-asm オプション動作確認用ソースファイル(4) */ #include <stdio.h> static __inline__ int sampFunc(void) /* __inline__の使用 */ { return 1; } int main(void) { int inline; /* inlineの識別子として使用 */ inline = 10; printf("-fno-asm オプション動作確認用ソースファイル\n"); printf("inline = %d\n", inline); printf("sampFunc = %d\n", sampFunc()); return 0; }

-fno-asm無しでコンパイル実行
$ gcc -v -std=c90 sample4.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cck6PwcD.o /tmp/ccHn8GzA.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c90' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル inline = 10 sampFunc = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=c99 sample4.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample4.c: In function ‘main’: sample4.c:13:2: warning: useless type name in empty declaration int inline; /* inlineの識別子として使用 */ inline がキーワードと認識され警告・エラー発生 ^~~ sample4.c:13:2: error: ‘inline’ in empty declaration sample4.c:15:9: error: expected identifier or ‘(’ before ‘=’ token inline = 10; ^ sample4.c:18:26: error: expected expression before ‘inline’ printf("inline = %d\n", inline); ^~~~~~ エラー発生・停止 $ gcc -v -std=gnu90 sample4.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample4.c: In function ‘main’: sample4.c:13:2: warning: useless type name in empty declaration int inline; /* inlineの識別子として使用 */ inline がキーワードと認識され警告・エラー発生 ^~~ sample4.c:13:2: error: ‘inline’ in empty declaration sample4.c:15:9: error: expected identifier or ‘(’ before ‘=’ token inline = 10; ^ sample4.c:18:26: error: expected expression before ‘inline’ printf("inline = %d\n", inline); ^~~~~~ エラー発生・停止 $ gcc -v -std=gnu99 sample4.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample4.c: In function ‘main’: sample4.c:13:2: warning: useless type name in empty declaration int inline; /* inlineの識別子として使用 */ inline がキーワードと認識され警告・エラー発生 ^~~ sample4.c:13:2: error: ‘inline’ in empty declaration sample4.c:15:9: error: expected identifier or ‘(’ before ‘=’ token inline = 10; ^ sample4.c:18:26: error: expected expression before ‘inline’ printf("inline = %d\n", inline); ^~~~~~ エラー発生・停止

-fno-asm有りでコンパイル実行
$ gcc -v -std=c90 -fno-asm sample4.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cc4nib8Q.o /tmp/cc5o3I11.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c90' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル inline = 10 sampFunc = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=c99 -fno-asm sample4.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample4.c: In function ‘main’: sample4.c:13:2: warning: useless type name in empty declaration int inline; /* inlineの識別子として使用 */ inline がキーワードと認識され警告・エラー発生 ^~~ sample4.c:13:2: error: ‘inline’ in empty declaration sample4.c:15:9: error: expected identifier or ‘(’ before ‘=’ token inline = 10; ^ sample4.c:18:26: error: expected expression before ‘inline’ printf("inline = %d\n", inline); ^~~~~~ エラー発生・停止 $ gcc -v -std=gnu90 -fno-asm sample4.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccEhKw3A.o /tmp/ccnogzXc.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu90' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル inline = 10 sampFunc = 1 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu99 -fno-asm sample4.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample4.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample4.c: In function ‘main’: sample4.c:13:2: warning: useless type name in empty declaration int inline; /* inlineの識別子として使用 */ inline がキーワードと認識され警告・エラー発生 ^~~ sample4.c:13:2: error: ‘inline’ in empty declaration sample4.c:15:9: error: expected identifier or ‘(’ before ‘=’ token inline = 10; ^ sample4.c:18:26: error: expected expression before ‘inline’ printf("inline = %d\n", inline); ^~~~~~ エラー発生・停止 $

その5

sample5.c
/* -fno-asm オプション動作確認用ソースファイル(5) */ #include <stdio.h> int main(void) { int i; typeof (int *) p1; /* typeofの使用 */ __typeof__ (int *) p2; /* __typeof__の使用 */ i = 100; p1 = &i; p2 = &i; printf("-fno-asm オプション動作確認用ソースファイル\n"); printf("*p1 = %d\n", *p1); printf("*p2 = %d\n", *p2); return 0; }

-fno-asm無しでコンパイル実行
$ gcc -v -std=c90 sample5.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample5.c: In function ‘main’: sample5.c:8:10: error: expected expression before ‘int’ typeof (int *) p1; /* typeofの使用 */ typeof がキーワードと認識されずエラー発生 ^~~ sample5.c:8:16: error: expected ‘;’ before ‘p1’ typeof (int *) p1; /* typeofの使用 */ ^~~ ; sample5.c:12:2: error: ‘p1’ undeclared (first use in this function); did you mean ‘p2’? p1 = &i; ^~ p2 sample5.c:12:2: note: each undeclared identifier is reported only once for each function it appears in エラー発生・停止 $ gcc -v -std=c99 sample5.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample5.c: In function ‘main’: sample5.c:8:2: warning: implicit declaration of function ‘typeof’; did you mean ‘feof’? [-Wimplicit-function-declaration] typeof (int *) p1; /* typeofの使用 */ typeof がキーワードと認識されず警告・エラー発生 ^~~~~~ feof sample5.c:8:10: error: expected expression before ‘int’ typeof (int *) p1; /* typeofの使用 */ ^~~ sample5.c:8:16: error: expected ‘;’ before ‘p1’ typeof (int *) p1; /* typeofの使用 */ ^~~ ; sample5.c:12:2: error: ‘p1’ undeclared (first use in this function); did you mean ‘p2’? p1 = &i; ^~ p2 sample5.c:12:2: note: each undeclared identifier is reported only once for each function it appears in エラー発生・停止 $ gcc -v -std=gnu90 sample5.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccIi6S26.o /tmp/cc6PRzPs.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu90' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル *p1 = 100 *p2 = 100 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu99 sample5.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... sample5 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccdAe3sv.o /tmp/ccIRr7fG.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 -plugin ... COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル *p1 = 100 *p2 = 100 コンパイル終了・実行ファイル生成

-fno-asm有りでコンパイル実行
$ gcc -v -std=c90 -fno-asm sample5.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample5.c: In function ‘main’: sample5.c:8:10: error: expected expression before ‘int’ typeof (int *) p1; /* typeofの使用 */ typeof がキーワードと認識されずエラー発生 ^~~ sample5.c:8:16: error: expected ‘;’ before ‘p1’ typeof (int *) p1; /* typeofの使用 */ ^~~ ; sample5.c:12:2: error: ‘p1’ undeclared (first use in this function); did you mean ‘p2’? p1 = &i; ^~ p2 sample5.c:12:2: note: each undeclared identifier is reported only once for each function it appears in エラー発生・停止 $ gcc -v -std=c99 -fno-asm sample5.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample5.c: In function ‘main’: sample5.c:8:2: warning: implicit declaration of function ‘typeof’; did you mean ‘feof’? [-Wimplicit-function-declaration] typeof (int *) p1; /* typeofの使用 */ typeof がキーワードと認識されず警告・エラー発生 ^~~~~~ feof sample5.c:8:10: error: expected expression before ‘int’ typeof (int *) p1; /* typeofの使用 */ ^~~ sample5.c:8:16: error: expected ‘;’ before ‘p1’ typeof (int *) p1; /* typeofの使用 */ ^~~ ; sample5.c:12:2: error: ‘p1’ undeclared (first use in this function); did you mean ‘p2’? p1 = &i; ^~ p2 sample5.c:12:2: note: each undeclared identifier is reported only once for each function it appears in エラー発生・停止 $ gcc -v -std=gnu90 -fno-asm sample5.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample5.c: In function ‘main’: sample5.c:8:10: error: expected expression before ‘int’ typeof (int *) p1; /* typeofの使用 */ typeof がキーワードと認識されずエラー発生 ^~~ sample5.c:8:16: error: expected ‘;’ before ‘p1’ typeof (int *) p1; /* typeofの使用 */ ^~~ ; sample5.c:12:2: error: ‘p1’ undeclared (first use in this function); did you mean ‘p2’? p1 = &i; ^~ p2 sample5.c:12:2: note: each undeclared identifier is reported only once for each function it appears in エラー発生・停止 $ gcc -v -std=gnu99 -fno-asm sample5.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample5.c -quiet -dumpbase sample5.c -mtune=generic -march=x86-64 -auxbase sample5 -std=gnu99 -version -fno-asm -o /tmp/ccyujfXv.s GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample5.c: In function ‘main’: sample5.c:8:2: warning: implicit declaration of function ‘typeof’; did you mean ‘feof’? [-Wimplicit-function-declaration] typeof (int *) p1; /* typeofの使用 */ typeof がキーワードと認識されず警告・エラー発生 ^~~~~~ feof sample5.c:8:10: error: expected expression before ‘int’ typeof (int *) p1; /* typeofの使用 */ ^~~ sample5.c:8:16: error: expected ‘;’ before ‘p1’ typeof (int *) p1; /* typeofの使用 */ ^~~ ; sample5.c:12:2: error: ‘p1’ undeclared (first use in this function); did you mean ‘p2’? p1 = &i; ^~ p2 sample5.c:12:2: note: each undeclared identifier is reported only once for each function it appears in エラー発生・停止 $

その6

sample6.c
/* -fno-asm オプション動作確認用ソースファイル(6) */ #include <stdio.h> int main(void) { int i; int typeof; /* typeofを識別子として使用 */ __typeof__ (int *) p1; /* __typeof__の使用 */ i = 100; typeof = 20; p1 = &i; printf("-fno-asm オプション動作確認用ソースファイル\n"); printf("typeof = %d\n", typeof); printf("*p1 = %d\n", *p1); return 0; }

-fno-asm無しでコンパイル実行
$ gcc -v -std=c90 sample6.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cc3E3Oa5.o /tmp/ccvJnga7.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c90' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル typeof = 20 *p1 = 100 コンパイル終了・実行ファイル生成 $ gcc -v -std=c99 sample6.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cc1j02i0.o /tmp/ccSx4UyU.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c99' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル typeof = 20 *p1 = 100 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu90 sample6.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample6.c: In function ‘main’: sample6.c:8:6: error: expected identifier or ‘(’ before ‘typeof’ int typeof; /* typeofを識別子として使用 */ typeof がキーワードと認識されエラー発生 ^~~~~~ sample6.c:13:9: error: expected ‘(’ before ‘=’ token typeof = 20; ^ ( sample6.c:17:26: error: expected expression before ‘typeof’ printf("typeof = %d\n", typeof); ^~~~~~ エラー発生・停止 $ gcc -v -std=gnu99 sample6.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none sample6.c: In function ‘main’: sample6.c:8:6: error: expected identifier or ‘(’ before ‘typeof’ int typeof; /* typeofを識別子として使用 */ typeof がキーワードと認識されエラー発生 ^~~~~~ sample6.c:13:9: error: expected ‘(’ before ‘=’ token typeof = 20; ^ ( sample6.c:17:26: error: expected expression before ‘typeof’ printf("typeof = %d\n", typeof); ^~~~~~ エラー発生・停止

-fno-asm有りでコンパイル実行
$ gcc -v -std=c90 -fno-asm sample6.c <--- 言語標準をc90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=c90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccsqkJGw.o /tmp/cciXGjNr.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c90' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル typeof = 20 *p1 = 100 コンパイル終了・実行ファイル生成 $ gcc -v -std=c99 -fno-asm sample6.c <--- 言語標準をc99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=c99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccMY0F5g.o /tmp/cc2TH3fO.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=c99' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル typeof = 20 *p1 = 100 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu90 -fno-asm sample6.c <--- 言語標準をgnu90と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=gnu90 ... GNU C89 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/cca7VoOe.o /tmp/cc7egcWQ.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu90' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル typeof = 20 *p1 = 100 コンパイル終了・実行ファイル生成 $ gcc -v -std=gnu99 -fno-asm sample6.c <--- 言語標準をgnu99と指定 Using built-in specs. /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/cc1 -quiet -v sample6.c ... -std=gnu99 ... GNU C99 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none as -v --64 -o /tmp/ccdRrGFo.o /tmp/cc0VmFiK.s /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/collect2 ... COLLECT_GCC_OPTIONS='-v' '-std=gnu99' '-fno-asm' '-mtune=generic' '-march=x86-64' $ ./a.out -fno-asm オプション動作確認用ソースファイル typeof = 20 *p1 = 100 コンパイル終了・実行ファイル生成 $