Provided by: manpages-ja_0.5.0.0.20080615-1_all bug

FreeBSDå›çœäœãé›ã‚ãƒå»ã‚èœãƒè…ン
       -pthread
              スレッド化ナヌザプロセスに libc の代りに libc_r をリンクしたす。
              スレッド化ナヌザプロセスにリンクされるオブゞェクトは
              -D_THREAD_SAFE 付い コンパむルする必芁がありたす。

       -kthread
              スレッド化カヌネルプロセスに    libc     に加えお     libpthread
              をリンクしたす。
              スレッド化カヌネルプロセスにリンクされるオブゞェクトは
              -D_THREAD_SAFE 付い コンパむルする必芁がありたす。

      å…æŸäœç™çšãæ·ã‚ãƒå»ã‚èœãƒè…ン
              -c -S -E -o file -pipe -v -x language

      èšç”èªè­ã‚ãƒå»ã‚èœãƒè…ン
              -ansi -fall-virtual -fcond-mismatch -fdollars-in-identifiers
              -fenum-int-equiv -fexternal-templates -fno-asm -fno-builtin
              -fhosted -fno-hosted -ffreestanding -fno-freestanding
              -fno-strict-prototype -fsigned-bitfields -fsigned-char
              -fthis-is-variable -funsigned-bitfields -funsigned-char
              -fwritable-strings -traditional -traditional-cpp -trigraphs

      è­æ‹å‘é™ã‚ãƒå»ã‚èœãƒè…ン
              -fsyntax-only -pedantic -pedantic-errors -w -W -Wall
              -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscript
              -Wcomment -Wconversion -Wenum-clash -Werror -Wformat
              -Wid-clash-len -Wimplicit -Wimplicit-int
              -Wimplicit-function-declaration -Winline -Wlong-long -Wmain
              -Wmissing-prototypes -Wmissing-declarations -Wnested-externs
              -Wno-import -Wparentheses -Wpointer-arith -Wredundant-decls
              -Wreturn-type -Wshadow -Wstrict-prototypes -Wswitch
              -Wtemplate-debugging -Wtraditional -Wtrigraphs -Wuninitialized
              -Wunused -Wwrite-strings

      ãƒåŠãƒäžãƒå¥ã‚å“ã‚ãƒå»ã‚èœãƒè…ン
              -a -dletters -fpretend-float -g -glevel -gcoff -gxcoff -gxcoff+
              -gdwarf -gdwarf+ -gstabs -gstabs+ -ggdb -p -pg -save-temps
              -print-file-name=library -print-libgcc-file-name

      æœæ’é匿„ã‚ãƒå»ã‚èœãƒè…ン
              -fcaller-saves -fcse-follow-jumps -fcse-skip-blocks
              -fdelayed-branch -felide-constructors -fexpensive-optimizations
              -ffast-math -ffloat-store -fforce-addr -fforce-mem
              -finline-functions -fkeep-inline-functions -fmemoize-lookups
              -fno-default-inline -fno-defer-pop -fno-function-cse -fno-inline
              -fno-peephole -fomit-frame-pointer -frerun-cse-after-loop
              -fschedule-insns -fschedule-insns2 -fstrength-reduce
              -fthread-jumps -funroll-all-loops -funroll-loops -O -O2 -O3 -O0
              -Os

      ãƒå»ãƒèžãƒå»ãƒè¹ã‚æœãƒå¥ã‚æ±ã‚ãƒå»ã‚èœãƒè…ン
              -Aassertion -C -dD -dM -dN -Dmacro[=defn] -E -H -idirafter dir
              -include file -imacros file -iprefix file -iwithprefix dir -M
              -MD -MM -MMD -nostdinc -P -Umacro -undef

      ã‚â–ã‚æœãƒéµãƒå±ãƒè–ã‚ãƒå»ã‚èœãƒè…ン
              -Wa,option

      ãƒèžãƒéµã‚ã‚ãƒå»ã‚èœãƒè…ン
              -llibrary -nostartfiles -nostdlib -static -shared -symbolic
              -Xlinker option -Wl,option -u symbol

      ãƒåŠã‚ãƒè­ã‚ãƒè‚ãƒèžã‚ãƒå»ã‚èœãƒè…ン
              -Bprefix -Idir -I- -Ldir

      ã‚æ‹ãƒç’ã‚æ®ãƒå¥ãƒè‚ã‚ãƒå»ã‚èœãƒè…ン
              -b  machine -V version

      ã‚çãƒéµãƒäŸã‚ã‚ãƒçµãƒè­ãƒç’ã‚èœãƒè…ãƒé¶äŸé å­çŒã‚ãƒå»ã‚èœãƒè…ン
              M680x0 _
              -m68000 -m68020 -m68020-40 -m68030 -m68040 -m68881 -mbitfield
              -mc68000 -mc68020 -mfpa -mnobitfield -mrtd -mshort -msoft-float

              VAX _
              -mg -mgnu -munix

              SPARC _
              -mepilogue -mfpu -mhard-float -mno-fpu -mno-epilogue
              -msoft-float -msparclite -mv8 -msupersparc -mcypress

              Convex _
              -margcount -mc1 -mc2 -mnoargcount

              AMD29K _
              -m29000 -m29050 -mbw -mdw -mkernel-registers -mlarge -mnbw
              -mnodw -msmall -mstack-check -muser-registers

              M88K _
              -m88000 -m88100 -m88110 -mbig-pic -mcheck-zero-division
              -mhandle-large-shift -midentify-revision
              -mno-check-zero-division -mno-ocs-debug-info
              -mno-ocs-frame-position -mno-optimize-arg-area
              -mno-serialize-volatile -mno-underscores -mocs-debug-info
              -mocs-frame-position -moptimize-arg-area -mserialize-volatile
              -mshort-data-num -msvr3 -msvr4 -mtrap-large-shift
              -muse-div-instruction -mversion-03.00 -mwarn-passed-structs

              RS6000 _
              -mfp-in-toc -mno-fop-in-toc

              RT _
              -mcall-lib-mul -mfp-arg-in-fpregs -mfp-arg-in-gregs
              -mfull-fp-blocks -mhc-struct-return -min-line-mul
              -mminimum-fp-blocks -mnohc-struct-return

              MIPS _
              -mcpu=cpu type -mips2 -mips3 -mint64 -mlong64 -mlonglong128
              -mmips-as -mgas -mrnames -mno-rnames -mgpopt -mno-gpopt -mstats
              -mno-stats -mmemcpy -mno-memcpy -mno-mips-tfile -mmips-tfile
              -msoft-float -mhard-float -mabicalls -mno-abicalls -mhalf-pic
              -mno-half-pic -G num -nocpp

              i386 _
              -m386 -m486 -mpentium -mpentiumpro -mno-486 -mcpu=cpu type
              -march=cpu type -msoft-float -mrtd -mregparm -msvr3-shlib
              -mno-ieee-fp -mno-fp-ret-in-387 -mfancy-math-387
              -mno-wide-multiply -mdebug-addr -mno-move -mprofiler-epilogue
              -reg-alloc=LIST

              HPPA _
              -mpa-risc-1-0 -mpa-risc-1-1 -mkernel -mshared-libs
              -mno-shared-libs -mlong-calls -mdisable-fpregs
              -mdisable-indexing -mtrailing-colon

              i960 _
              -mcpu-type -mnumerics -msoft-float -mleaf-procedures
              -mno-leaf-procedures -mtail-call -mno-tail-call -mcomplex-addr
              -mno-complex-addr -mcode-align -mno-code-align -mic-compat
              -mic2.0-compat -mic3.0-compat -masm-compat -mintel-asm
              -mstrict-align -mno-strict-align -mold-align -mno-old-align

              DEC Alpha _
              -mfp-regs -mno-fp-regs -mno-soft-float -msoft-float

              System V _
              -G -Qy -Qn -YP,paths -Ym,dir

      ã‚é­ãƒç’ãƒå»ç”èšæˆã‚ãƒå»ã‚èœãƒè…ン
              -fcall-saved-reg -fcall-used-reg -ffixed-reg
              -finhibit-size-directive -fnonnull-objects -fno-common
              -fno-ident -fno-gnu-linker -fpcc-struct-return -fpic -fPIC
              -freg-struct-return -fshared-data -fshort-enums -fshort-double
              -fvolatile -fvolatile-global -fverbose-asm

å…æŸäœç™çšãæ·ã‚ãƒå»ã‚èœãƒè…ン
       -x language
              このオプションに続く入力ファむルの蚀語を                language
              であるず明瀺的に指定したす
              (拡匵子に基づくデフォルトの遞択よりも優先されたす)。このオプションは、
              次の                                                        `-x'
              オプションが出おくるたで、埌続する党おの入力ファむルに察しお
              適甚されたす。language     ずしおは、     `c',    `objective-c',
              `c-header',       `c++',       `cpp-output',        `assembler',
              `assembler-with-cpp' を指定するこずが可胜です。

       -x none
              蚀語の指定を解陀したす。このオプションのあずに続くファむルは、それらの拡匵子に
              基づいお                   (あたかも䜕の                    `-x'
              オプションも䜿甚されたこずがないように) 凊理されたす。

       もし、4  ぀のステヌゞ (プリプロセス、コンパむル、アセンブル、リンク) の
       うちの䞀郚のみが必芁な堎合は、             `-x'              オプション
       (たたはファむル名の拡匵子)                を䜿甚しお                gcc
       に察しおどのステヌゞから開始するかを䌝え、さらに   `-c',   `-S',   `-E'
       のオプションのうちのどれかを䜿甚しお                                gcc
       に察しおどこで凊理を停止させるかを指定したす。ここで、
       いく぀かの組み合わせ    (䟋えば    `-x    cpp-output    -E')   は   gcc
       に察しお䜕の動䜜も行なわないように指定するこずになるこずに泚意しおください。

       -c     ゜ヌスファむルを、コンパむルたたはアセンブルたではしたすが、リンクはしたせん。
              コンパむラの出力は、それぞれの゜ヌスファむルに察応したオブゞェクトファむル
              ずなりたす。

              デフォルトでは、GCC   はオブゞェクトファむルのファむル名ずしお、
              ゜ヌスファむルの拡匵子  `.c',  `.i',  `.s'  等を   `.o'   で眮-
              換えたものを䜿甚したす。                                      -o
              オプションを䜿甚するこずによっお、他の名前を指定するこずも可胜です。

              GCC  は  -c  オプションを䜿甚した堎合は、理解でい芆お力ファむル
              (コンパむルやアセンブル を必芁ずしないファむル) を無芖したす。

       -S     コンパむルが終った所で凊理を停止し、アセンブルは行いたせん。
              アセンブラコヌドではない入力ファむルが指
              定された堎合は、出力はアセンブラコヌドのファむルになりたす。

              デフォルトでは、GCC     はアセンブラファむルのファむル名ずしお、
              ゜ヌスファむルの拡匵子    `.c',    `.i'    等を    `.s'   で眮-
              換えたものを䜿甚したす。                                      -o
              オプションを䜿甚するこずによっお、他の名前を指定するこずも可胜です。

              GCC はコンパむルを必芁ずしない入力ファむルを党お無芖したす。

       -E     プリプロセス凊理が終了したずころで停止したす。コンパむルはしたせん。
              出力はプリプロセス枈みの゜ヌスコヌドであり、暙準出力ぞず送られたす。

              GCC はプリプロセスを必芁ずしない入力ファむルを党お無芖したす。

       -o file
              出力先を      file      に指定したす。このオプションは       GCC
              が実行可胜ファむル、
              オブゞェクトファむル、アセンブラファむル、プリプロセス枈み     C
              コヌドなどの、 いかなる皮類の出力を行なう堎合にも適甚可胜です。

              出力ファむルは        1       ぀しか指定でい芆い燭瓠       `-o'
              を耇数の入力ファむルをコンパむルする際に䜿甚するこずは、実行ファ
              むルを出力する時以倖は無意味です。

              `-o'オプションを指定しなかった堎合のデフォルトは、実行ファむルを䜜る堎
              合は          `a.out'          ずいう名前であり、`source.suffix'
              の圢匏のファむル名を持った゜ヌスファむルのオブゞェクトファむルは
              `source.o'  であり、アセンブラのファむルは   `source.s'   です。
              プリプロセス枈みの C 蚀語は、党お暙準出力に送られたす。

       -v     (暙準゚ラヌ出力に察しお)
              コンパむルの各ステヌゞで実行されるコマンドを
              衚瀺したす。コンパむラドラむバ、プリプロセッサおよび本来のコンパむラの
              各バヌゞョン番号も衚瀺したす。

       -pipe  コンパむル時のステヌゞの間のデヌタの受け枡しに、テンポラリファむルではなく
              パむプを䜿甚したす。いく぀かのシステムではアセンブラがパむプからの入力を受け
              付けるこずがで-
              ないために、このオプションを指定するず倱敗したす。           GNU
              アセンブラでは問題なく䜿甚でい泙后

èšç”èªè­ã‚ãƒå»ã‚èœãƒè…ン
       以䞋のオプションは、コンパむラが受け付ける                            C
       の方蚀に関する制埡を行ないたす:

       -ansi  党おの ANSI 暙準の C プログラムをサポヌトしたす。

              このオプションは、GNU       C        が持぀        ANSI        C
              ずの非互換な機胜を党お排陀したす。  䟋えば、asm,  inline, typeof
              などのァ璜錙璜匹筺unix                  や                  vax
              などの珟圚䜿甚しおいるシステムを芏定する定矩枈みマクロなどが抑制されたす。
              さらに、奜たしくなくか぀ほずんど䜿甚されない                ANSI
              のトラむグラフの機胜を䜿          甚可胜ずし、さらに         `$'
              を識別子の䞀郚ずしお䜿甚でい芆い茲Δ砲靎泙后

              代替ァ璜錙璜匹任△__asm__,      __extension__,      __inline__,
              __typeof__                      は、                     `-ansi'
              が指定された堎合でも䜿甚するこずが可胜です。もちろん、  これらを
              ANSI                                                           C
              プログラムで䜿甚するこずが望たしくないのは圓然ですが、`-ansi'
              を぀けおコンパむルされる堎合でも、むンクルヌドされるヘッダファむル䞭に
              これらが欺劌任るずいうこずは様僂任后   __unix__   や    __vax__
              などの代替定矩枈みマクロは、                             `-ansi'
              を指定する堎合でも指定しない堎合でも、利甚可胜ずなっおいたす。

              `-ansi'                                       オプションは、ANSI
              準拠でないプログラムを䞍必芁に拒吊するこずは
              ありたせん。もしこのような動䜜を行なわせたい堎合には`-ansi'に加えお-pedantic'
              オプションを指定する必芁がありたす。

              プリプロセッサ定矩枈みマクロ    __STRICT_ANSI__    が    `-ansi'
              オプションを䜿甚した際には定矩されたす。いく぀かのヘッダファむルは、この
              マクロを識別しお、ANSI
              暙準が望たない関数やマクロの定矩を抑制したす。          これは、
              それらの関数やマクロず同じ名前を別の目的で䜿甚するプログラム
              を混乱させないようにするためです。

       -fno-asm
              asm,     inline,     typeof      をァ璜錙璜匹箞靎堂鮗瓩靎泙擊鵝
              これらの単語は識別子ずしお解釈されるようになりたす。これらの代甚ずしお
              __asm__,   __inline__,   __typeof__   が䜿甚でい泙后    `-ansi'
              を指定するず、暗黙のうちに                            `-fno-asm'
              を指定したものずみなされたす。

       -fno-builtin
              ビルトむン関数のうち、2
              ぀のアンダヌスコアで始たるもの以倖を認識しなくなり
              たす。珟圚、この指定は_exit,  abort,  abs,  alloca,  cos,  exit,
              fabs,  labs,  memcmp,  memcpy, sin, sqrt, strcmp, strcpy, strlen
              の関数に圱響を及がしたす。

              `-ansi'      オプションを指定するず、alloca       ず       _exit
              はビルトむン関数ずしお扱われなくなりたす。

       -fhosted
              ホスト実行環  (hosted  environment)  甚にコンパむルを行いたす。
              これにより、`-fbuiltin' オプションが邑になり、たた、䞍審な main
              宣蚀に察しお譊告を発するようになりたす。

       -ffreestanding
              フリヌスタンディング実行環   (freestanding   environment)  甚に
              コンパむルを行いたす。 これにより、`-fno-builtin' オプションが-
              効になり、たた、 main に特別な条件は䞍芁ずみなしたす。

       -fno-strict-prototype
              `int     foo     ();'    のような、匕数を指定しない関数宣蚀を、C
              蚀語のように匕数の数や
              型に぀いお䜕の仮定もしないずいう扱いにしたす                (C++
              のみ)。通垞はこのよう  な宣蚀は、C++  では  foo  ずいう関数が  1
              ぀も匕数をずらないこずを意味したす。

       -trigraphs
              ANSI         C         のトラむグラフを䜿甚可胜ずしたす。`-ansi'
              オプションを指定するず、暗黙のうちに                `-trigraphs'
              を指定したものずみなされたす。

       -traditional
              䌝統的な  C コンパむラのいく぀かの特城をサポヌトしたす。詳しくは
              GNU                             C                             の
              マニュアルを参照しおください。以前はここにそのリストの耇補を茉せおいたしたが、
              それらが完党に時代遅れになった時に我々に文句が来ないように削陀しおしたいた
              した。

              しかし、C++  のプログラムだけに぀いお  (C  ではありたせん)  特-
              しおおくこず が 1 ぀ありたす。 `-traditional'  オプションは  C++
              に察しお     1     ぀だけ特別な効果を持ちたす。それは、     this
              ぞの代入を蚱可するずいうものです。これは
              `-fthis-is-variable'オプションの指定が及がす効果ず同䞀のものです。

       -traditional-cpp
              䌝統的な                                                       C
              プリプロセッサのいく぀かの特城をサポヌトしたす。これは䞊に挙
              げた䞭で特にプリプロセッサに関係したものを含みたすが、
              `-traditional'                                の指定によっお匕-
              起こされる以倖の効果を及がすこずはありたせん。

       -fdollars-in-identifiers
              識別子䞭の     `$'     の䜿甚を蚱可したす      (C++      のみ)。
              `-fno-dollars-in-identifiers'   を䜿甚するこずによっお、明瀺的に
              `$'の䜿甚を犁止するこずも可胜です。(GNU  C++  では、デフォルトで
              `$' を蚱可しおいるシステムず犁止しおいるシステムがありたす)。

       -fenum-int-equiv
              int  から列挙型ぞの暗黙の倉換を蚱可したす (C++ のみ)。通垞は GNU
              C++    は    enum    から    int    ぞの倉換は蚱可しおいたすが、
              逆は蚱しおいたせん。

       -fexternal-templates
              テンプレヌト関数に぀いお、その関数が定矩された堎所にのみ単䞀のコピヌ
              を生成するこずによっお、テンプレヌト宣蚀に察しおより小さなコヌドを生成
              したす                                                      (C++
              のみ)。このオプションを䜿甚しお正しいコヌドを埗るためには、
              テンプレヌトを䜿甚する党おのファむルにおいお、`#pragma
              implementation' (定矩) たたは `#pragma  interface'  (宣蚀)  を-
              述しおおく必芁がありたす。

              `-fexternal-templates'
              を指定しおコンパむルを行なう堎合には、党おのテンプレヌトの
              実䜓は                                                  external
              ずなりたす。党おの䜿甚される実䜓はむンプリメンテヌション
              ファむル䞭にたずめお-
              述しおおかなければなりたせん。これはその必芁ずされ
              る実䜓に察応した  typedef  宣蚀を行なうこずによっお実珟でい泙后
              逆に、デフォルトのオプション           `-fno-external-templates'
              でコンパむルした堎合には党おのテンプレヌトの実䜓は  internal  ず
              なりたす。

       -fall-virtual
              可胜な限り党おのメンバ関数を暗黙のうちに仮想関数ずしお扱いたす。
              党おのメンバ関数      (コンストラクタず     new     ,     delete
              メンバ挔算子を陀い泙)
              は、出珟した時点でそのクラスの仮想関数ずし お扱われたす。

              これは、これらのメンバ関数ぞの党おの呌び出しが仮想関数のための内郚
              テヌブルを参照しお間接的に決定されるずいうこずを意味したせん。特定の状況
              においおは、コンパむラは䞎えられた仮想関数ぞの呌び出しを盎接決定で-
              たす。
              このような堎合にはその関数呌び出しは垞に盎接呌び出しずなりたす。

       -fcond-mismatch
              条件挔算子の第      2,       第       3       匕数の型が異なる-
              述を蚱したす。このような匏の型は void ずなりたす。

       -fthis-is-variable
              this    ぞの代入を蚱可したす    (C++   のみ)。ナヌザ定矩による-
              憶管理が可              胜ずなった珟圚では、              `this'
              ぞの代入は時代遅れのものずなりたした。埓っおデフォルトでは、クラスの
              メンバ関数からの                                            this
              ぞの代入は䞍圓なものずしお扱われおいたす。しかし、埌方互換-
              のために、                                  `-fthis-is-variable'
              を指定するこずによっおこの効果を埗るこずがでい泙后

       -funsigned-char
              char 型を unsigned char のように笊号無しずしお扱いたす。

              それぞれのマシンには           char           がどちらであるべ-
              かずいうデフォルトがありたす。   デフォルトで   unsigned    char
              であるこずもあれば、デフォルトで           signed           char
              であるこずもありたす。

              理想的には、可搬䞖里△襯廛蹈哀薀爐蓮▲ブゞェクトの笊号の楊気飜
              存する欺劌鮃圓芆堎合には垞に   signed  char、もしくは  unsigned
              char  を䜿甚すべい任后   しかし実際には倚くのプログラムが単なる
              char  を甚いお欺劌気譎蚎り、さらにそのプログラムを欺劌靎  環-
              に䟝存しお、笊号付-
              である、あるいは笊号無しであるずいう暗黙の仮定が
              行なわれおいたす。このオプション、あるいはこの逆のオプションは、デフォル
              トず逆の動䜜を行なわせるこずにより、これらのプログラムを正しく動䜜させ
              るこずを可胜にしたす。

              char   型は垞に   signed    char    あるいは    unsigned    char
              ずは区別された型ずしお扱われたす。垞にそれらの振舞いがそのどち
              らかず党く同じであるずいうこずに関わらず、このような扱いを行いたす。

       -fsigned-char
              char 型を signed char 型のように笊号付い箞靎動靎い泙后

              ただし、このオプションは `-fno-unsigned-char' ず等䟡です。これは
              `-funsigned-char'の吊定圢です。同様に   `-fno-signed-char'    は
              `-funsigned-char' ず等䟡です。

       -fsigned-bitfields

       -funsigned-bitfields

       -fno-signed-bitfields

       -fno-unsigned-bitfields
              これらのオプションは、明瀺的に    `signed'   たたは   `unsigned'
              の指定が行なわれおいないビットフィヌルドに察しお、笊号぀-
              であるかある
              いは笊号なしであるかを制埡したす。デフォルトではこのようなビットフィヌル
              ドは笊号぀い箞芆蟰蚎い泙后なぜなら、                        int
              のような基本的な型は笊号぀い任△襪箞いε䞖劂∪姐臉-
              がずれるからです。

              ただし、`-traditional'
              を指定した堎合は、ビットフィヌルドは垞に党お笊号無しであるずされたす。

       -fwritable-strings
              文字列定数を曞-
              蟌み可胜なデヌタセグメントに配眮し、同内容の文字列を 1  ぀の共-
              オブゞェクトにする凊理を行いたせん。これは、文字定数に曞すむ
              こずがでい襪海箞魏枉蠅靎神里離廛蹈哀薀爐箞慮柳浩-
              をずるために提䟛され                    おいたす。`-traditional'
              オプションも同様の効果を含みたす。

              文字定数に曞すむずいう考えは非垞によくない考えです。"定数"
              はたさに定数であり、倉化すべい任呂△蠅泙擊鵝

ãƒå»ãƒèžãƒå»ãƒè¹ã‚æœãƒå¥ã‚æ±ã‚ãƒå»ã‚èœãƒè…ン
       これらのオプションは     C     プリプロセッサを制埡したす。     各    C
       ゜ヌスファむルは、実際にコンパむルする前に、C          プリプロセッサに
       かけられたす。

       `-E' オプションを䜿甚するず、GCC はプリプロセス以倖の凊理を行いたせん。
       以䞋に瀺すオプションのうちのいく぀かは、`-E'
       ず同時に䜿甚された時のみ意味をもちたす。なぜならば、これらのオプション
       によっお、実際のコンパむルには䞍適圓なプリプロセッサ出力が生成されるためです。

       -include file
              file  を、通垞の入力ファむルが凊理される前に凊理したす。結果的に
              file
              に含たれる内容は、䞀番最初にコンパむルされるこずになりたす。コマンドラ
              むンに指定されたすべおの  `-D'  や   `-U'   オプションは、その-
              述された順番に関わらず垞に            `-include            file'
              が凊理される前に凊理されたす。党おの  `-include'  や  `-imacros'
              オプションは、それらが欺劌気譎申臠厢未蠅暎萢されたす。

       -imacros file
              通垞の入力ファむルを凊理する前にfile
              を入力ずしお凊理したすが、その結果の出力を捚おたす。        file
              によっお生成された出力は捚おられるため、`-imacros          file'
              の凊理結果の圱響は、file                                  䞭に-
              述されたマクロがメむンの入力ファむル䞭で䜿甚可胜になるこずだけです。
              プリプロセッサは、`-imacros              file'              が-
              述された順番に関わらず、これを凊理する前に、
              コマンドラむンから䞎えられた党おの      `-D'       や       `-U'
              オプションを評䟡したす。党おの   `-include'   および  `-imacros'
              オプションは、それらが欺劌気譎申臠厢未蠅暎萢されたす。

       -idirafter dir
              ディレクトリ  dir  を第   2   むンクルヌドパスに加えたす。第   2
              むンクルヌドパス䞭のディレクトリは、      メむンむンクルヌドパス
              (オプション              `-I'              によっお远加されたす)
              䞭にヘッダファむルを探した結果発芋でい
              かった堎合に怜玢されたす。

       -iprefix prefix
              prefix              を、その埌に続く              `-iwithprefix'
              オプション甚のプレフィックスずしお䜿甚したす。

       -iwithprefix dir
              ディレクトリを第                                               2
              むンクルヌドパスに远加したす。ディレクトリ名は  prefix  ず   dir
              を連結するこずによっお埗られたす。ここで  prefix  は、`-iprefix'
              オプションによっお指定されたものです。

       -nostdinc
              ヘッダファむルのための暙準のシステムディレクトリを怜玢したせん。`-I'
              オプションによっお指定したディレクトリ (たたはカレントディレクト
              リ) のみを怜玢したす。

              `-nostdinc'                                                   ず
              `-I-'を䜿甚するこずにより、むンクルヌドファむルの怜玢パスを明瀺的に指
              定したディレクトリのみに限定するこずが可胜ずなりたす。

       -nostdinc++
              ヘッダファむルの怜玢に、C++-固-
              の暙準ディレクトリを甚いたせん。ただ
              しそれ以倖の暙準ディレクトリは怜玢されたす。   (このオプションは
              `libg++' の構築に䜿甚されたす。)

       -undef 暙準でない定矩枈みマクロ(アヌ-
              テクチャフラグも含めお)を定矩したせん。

       -E     C     プリプロセッサの凊理のみを行いたす。指定された党おの     C
              の゜ヌスファむル
              に察しおプリプロセスを行ない、暙準出力、たたは指定された出力ファむルに
              察しお出力を行いたす。

       -C     プリプロセッサに察しおコメントの削陀を行なわないように指瀺したす。
              `-E' オプションずずもに䜿甚されたす。

       -P     プリプロセッサに察しお                                   `#line'
              コマンドを生成しないように指瀺したす。                      `-E'
              オプションずずもに䜿甚されたす。

       -M  [ -MG ]
              プリプロセッサに察しおmake
              で䜿甚可胜な、オブゞェクト間の䟝存関係を-
              述した出力を生成するように指瀺
              したす。それぞれの゜ヌスファむルに察しお、プリプロセッサはmake
              のための芏則を   1    ぀出力したす。この出力は、タヌゲットずしお
              その゜ヌスファむルから生成されるオブゞェクトファむルのファむル名をずり、
              䟝存するファむルのリストずしおは                      `#include'
              によっお゜ヌスファむルに
              読み蟌たれる党おのファむルの名前が䞊びたす。この    芏則は     1
              行、あるいは長い堎合には`\'
              ず改行を入れお耇数行で出力されたす。この芏則のリストは、プリプロセス枈
              みの C プログラムのかわりに、暙準出力ぞず出力されたす。

              `-M' は暗黙のうちに `-E' を含みたす。

              `-MG'
              を指定するず、芋぀からないヘッダファむルは生成されたファむルであり、
              それらは゜ヌスファむルず同じディレクトリに存圚するずみなしたす。
              これは `-M' ず同時に指定しなければなりたせん。

       -MM  [ -MG ]
              `-M'                                   ず䌌おいたすが、`#include
              "file"'によっおむンクルヌドされるナヌザ定矩のヘッダファむルのみを察象に
              した出力ファむルを生成したす。`#include                  <file>'
              によっおむンクルヌドされるシステムヘッダファむルは省略されたす。

       -MD    `-M'  ず䌌おいたすが、䟝存情報は出力ファむル名の最埌の  `.o'  を
              `.d' に眮ご垢┐織䟫ぅ詭召離䟫ぅ襪玡䞪靎峠䟘呂気譎泙后 `-MD'
              を指定したファむルのコンパむルもこれに加えお行なわれ、      `-M'
              のように通垞のコンパむルを抑制するこずはありたせん。

              Mach    のナヌティリティである`md'    は、これらの耇数の    `.d'
              ファむルを     `make'      コマンドによっお䜿甚でい蚝碓譎琉預元-
              述ファむルぞずマヌゞするのに䜿甚 するこずがでい泙后

       -MMD   `-MD'
              ず䌌おいたすが、ナヌザヘッダファむルのみを察象ずし、システムヘッダ
              ファむルを無芖したす。

       -H     通垞の動䜜に加えお、䜿甚されたヘッダファむルの名前を衚瀺したす。

       -Aquestion(answer)
              questionに察するアサヌション answer   を定矩したす。これは  `#if
              #question(answer)'
              のようなプリプロセッサ条件節によっおテストされたす。`-A-'
              は暙準のアサヌション(通垞はタヌゲットマシンに関
              する情報を衚しおいる)を犁止したす。

       -Dmacro
              マクロ macro に察しお文字列 `1' を定矩ずしお䞎えたす。

       -Dmacro=defn
              マクロ macro を defn  ずしお定矩したす。コマンドラむン䞊の党おの
              `-D'                      オプションは                      `-U'
              オプションの凊理を行なう前に凊理されたす。

       -Umacro
              マクロ macro の定矩を無効にしたす。`-U' オプションは党おの  `-D'
              オプションの凊理が終了した埌、`-include'      ず      `-imacros'
              オプションの凊理の前に凊理されたす。

       -dM    プリプロセッサに察しお、プリプロセス終了時に-
              効であったマクロの定矩の      みを出力するように指瀺したす。`-E'
              オプションずずもに䜿甚したす。

       -dD    プリプロセッサに察しお、党おのマクロ定矩を適切な順番で出力䞭にそのたた
              出力するように指瀺したす。

       -dN    `-dD'           ず䌌おいたすが、マクロの匕数ず内容を削陀したす。
              出力には`#define name' のみが含たれたす。

ã‚â–ã‚æœãƒéµãƒå±ãƒè–ã‚ãƒå»ã‚èœãƒè…ン
       -Wa,option
              option      をアセンブラに察するオプションずしお枡したす。option
              がコンマを含む堎合は、そのコンマで区切られた耇数のオプションずしお䞎え
              られたす。

ãƒèžãƒéµã‚ã‚ãƒå»ã‚èœãƒè…ン
       これらのオプションは、コンパむラがオブゞェクトファむル矀をリンクしお  1
       ぀
       の実行可胜ファむルを出力する際に䜿甚されるものです。これらはコンパむラが
       リンクステップを行なわない堎合には意味を持ちたせん。

       object-file-name
              特別に認識される拡匵子で終っおいないファむル名は、オブゞェクトファむル、
              たたはラむブラリであるず認識されたす。(オブゞェクトファむルずラむブラリ
              はリンカがその内容を参照するこずで区別されたす。)            GCC
              がリンクステップを
              行なう堎合は、これらのファむルはリンカぞの入力ずしお䜿甚されたす。

       -llibrary
              名前が library であるラむブラリをリンク時に䜿甚したす。

              リンカは、暙準のラむブラリ甚ディレクトリのリスト䞭から、
              実際のファむル名が                                `liblibrary.a'
              であるファむルを怜玢したす。リンカはこのファむルを、ファむル
              名で盎接指定した堎合ず同様に䜿甚したす。

              怜玢するディレクトリには、いく぀かの暙準システムディレクトリず、`-L'
              によっお指定したディレクトリが含たれたす。

              通垞、この方法で発芋されるファむルはラむブラリファむル、぀たりいく぀かの
              オブゞェクトファむルをメンバずしお含むアヌカむブファむルです。
              リンカは、アヌカむブファむルの䞭を怜玢しお、
              参照されおいるが定矩されおいないシンボルを定矩しおいるメンバを
              探し出したす。
              しかし、もしリンカがラむブラリでなく通垞のオブゞェクトファむルを発芋した
              堎合は、そのオブゞェクトファむルを通垞の方法でリンクしたす。`-l'
              オプションを䜿甚する堎合ずファむル名を盎接指定する堎合の違いは、`-l'
              の堎合が       library       を       `lib'       ず        `.a'
              で囲み、いく぀ものディレクトリを怜玢するこずだけです。

       -lobjc Objective    C   のプログラムをリンクする堎合は、この特別な   -l
              オプションを指定する必芁がありたす。

       -nostartfiles
              リンク時に、暙準のシステムスタヌトアップファむルを䜿甚したせん。
              暙準ラむブラリは通垞通りに䜿甚されたす。

       -nostdlib
              リンク時に、暙準のシステムラむブラリずスタヌトアップファむルを䜿甚したせん。
              指定したファむルのみがリンカに枡されたす。

       -static
              ダむナミックリンクをサポヌトするシステムにおいお、このオプションは共-
              ラむブラリずのリンクを抑制したす。それ以倖のシステムではこのオプションは
              意味を持ちたせん。

       -shared
              他のオブゞェクトずリンクしお実行可胜プログラムを圢成し埗る共-
              オブゞェクトを
              生成したす。ごく少数のシステムでのみ、このオプションはサポヌトされ
              おいたす。

       -symbolic
              共-
              オブゞェクトを構築する際に、グロヌバルなシンボルぞの参照をバむンド
              したす。党おの解決でい芆った参照に察しお譊告を䞎えたす
              (ただしリンク゚ディタオプション  `-Xlinker  -z  -Xlinker   defs'
              によっおこれを無効化した堎合を陀-
              たす)。ごく少数のシステムでのみ、
              このオプションはサポヌトされおいたす。

       -Xlinker option
              オプション                                                option
              をリンカに察しお枡したす。リンカに枡すシステム固-
              のオプションが、  GNU  CC  が理解でい芆い癌里任△蚃豺腓僕甚で-
              たす。

              匕数を持ったオプションを枡したい堎合は、   `-Xlinker'    を    2
              床䜿甚すれば可胜です。1  床目でオプションを枡し、2  床目で匕数を
              枡したす。䟋えば `-assert  definitions'  を枡すには、  `-Xlinker
              -assert    -Xlinker   definitions'   のように欺劌垢譎于怎修任后
              `-Xlinker                 "-assert                 definitions"'
              のように指定した堎合は正垞に動䜜したせん。なぜならこれは、文字列党
              䜓を                                                           1
              ぀の匕数ずしお枡しおしたい、リンカの期埅する圢匏ず異なっおした
              うからです。

       -Wl,option
              オプション           option           をリンカに枡したす。option
              がコンマを含む堎合は、それらのコンマで耇数のオプションずしお分割されたす。

       -u symbol
              シンボル                                                  symbol
              が未定矩であるかのように振舞いたす。これは匷制的にこのシンボルを定矩しおい
              るラむブラリモゞュヌルをリンクするために䜿甚したす。`-u'
              は異なったシンボルに察しお耇数回䜿甚するこずがで-
              たす。これによっ
              お、さらに倚くのラむブラリモゞュヌルを読み蟌たせるこずがで-
              たす。

ãƒåŠã‚ãƒè­ã‚ãƒè‚ãƒèžã‚ãƒå»ã‚èœãƒè…ン
       これらのオプションは、ヘッダファむル、ラむブラリ、コンパむラの䞀郚を怜
       玢するディレクトリを指定するために䜿甚されたす。

       -Idir  ディレクトリ                                                 dir
              を、むンクルヌドファむルの怜玢するディレクトリのリスト䞭に远加したす。

       -I-    `-I-'                   オプション指定前に                  `-I'
              オプションによっお指定された党おのディレクトリは、`#include
              "file"'  の圢匏によっおのみ怜玢されたす。 これらのディレクトリは
              `#include <file>' によっおは怜玢されたせん。

              ` -I-' オプション指定埌に `-I'  で指定したディレクトリは、党おの
              `#include'    呜什によっお怜玢されたす。(通垞は    _-I'
              で指定されたディレクトリは この方法で怜玢されたす。)

              これに加えお      `-I-'       オプションは、カレントディレクトリ
              (珟圚の入力ファむルが存圚する ディレクトリ) が `#include "file"'
              に察する最初の怜玢察象ずなるこずを抑制したす。`-I-'
              によるこの効果を䞊曞い垢詈法はありたせん。`-I.'
              を指定するこずによっお、コンパむラが起動されたディレクトリが怜玢
              されるこずを指定するこずは可胜です。これはプリプロセッサが行なう
              デフォルトの動䜜ずは異なりたすが、たいおいはこれで十分です。

              `-I-'
              は、ヘッダファむルの怜玢に暙準のシステムディレクトリを䜿うこずを抑制
              するわけではありたせん。   埓っお、`-I-'   ず   `-nostdinc'   は
              独立です。

       -Ldir  ディレクトリdir                      を                     `-l'
              による怜玢が行なわれるディレクトリのリストに加えたす。

       -Bprefix
              このオプションはコンパむラ自身の実行圢匏、ラむブラリ、デヌタファむルの
              怜玢堎所を指定したす。

              コンパむラドラむバはサブプログラム   `cpp',  `cc1'  (たたは  C++
              においおは    `cc1plus'),    `as',    そしお    `ld'    を     1
              ぀、あるいはそれ以䞊起動したす。コンパむラドラむバは、
              起動するプログラムのプレフィックスずしお        prefix        に
              `machine/version/'            を぀けたものず぀けないものの双方を
              䜿甚したす。

              コンパむラドラむバは各サブプログラムの起動時に、            `-B'
              プレフィックスの指定がある堎合は、それを最初に利甚したす。もしその
              名前が芋぀からなければ、たたは                              `-B'
              が指定されおいなければ、ドラむバは    2   ぀の暙準プレフィックス
              `/usr/lib/gcc/'           ず           `/usr/local/lib/gcc-lib/'
              を詊したす。このどちらにも芋぀からなければ、コンパむラドラむバは、
              環曲竞                                                   `PATH'
              のディレクトリリストを利甚しお、そのプログラム名を怜玢したす。

              ランタむムサポヌトファむル    `libgcc.a'   も、必芁ならば   `-B'
              プレフィックスを甚いお怜玢されたす。もしそこに芋぀からなければ、
              前                                                            2
              ぀の暙準プレフィックスが詊みられたすが、それで終りです。この堎合は
              リンクの察象から倖されたす。ほずんどの堎合、たたほずんどのマシンでは、`libgcc.a'
              は実際には必芁ではありたせん。

              これず同じ効果を、環曲竞                        GCC_EXEC_PREFIX
              によっおも埗るこずがでい泙后もしこの環-
              倉数が定矩されおいれば、こ
              の倀がプレフィックスずしお同様に䜿甚されたす。もし          `-B'
              オプションず GCC_EXEC_PREFIX 環曲竞瑀料䜇が存圚した堎合は、`-B'
              オプションが最初に䜿甚され、環曲竞瑀麓忙藩僂気譎泙后

è­æ‹å‘é™ã‚ãƒå»ã‚èœãƒè…ン
       譊告は、本質的に間違いであるわけではありたせんが、危険な構造を報告したり、
       ゚ラヌがあるかもしれないような郚分を瀺唆する蚺断メッセヌゞです。

       以䞋のオプションは、GNU CC が生成する譊告の量ず皮類を制埡したす。

       -fsyntax-only
              コヌドの文法゚ラヌをチェックしたすが、䞀切出力は行いたせん。

       -w     党おの譊告メッセヌゞを抑制したす。

       -Wno-import
              #import の利甚による譊告メッセヌゞを抑制したす。

       -pedantic
              厳密な                ANSI                暙準                 C
              蚀語で芏定しおいる党おの譊告を衚瀺し、蚱されおいない拡匵を
              䜿甚したプログラムを党お拒吊したす。

              正圓な ANSI 暙準  C  プログラムは、このオプションの楊気亡悗錣蕕
              コンパむルでい襪戮です     (もっずも、ほんのわずかではありたすが
              `-ansi'
              を必芁ずするものはありたす)。しかし、このオプションを䜿甚しない堎合、
              GNU                       拡匵や䌝統的な                       C
              の特城も、これに加えおサポヌトされたす。このオプション
              を䜿甚すれば、それらは拒絶されたす。このオプションを_-pedantic'      は、始たりず終りずが      `__'     である代替-
              ヌワヌドの䜿甚に぀いおは、譊告したせん。  同様に   __extension__
              に続く衚珟に぀いおも譊告したせん。しかし、システムヘッダファむルのみ
              がこの抜け道を䜿甚すべ-
              であり、アプリケヌションプログラムはこれを避け るべい任后

       -pedantic-errors
              `-pedantic' ず䌌おいたすが、譊告のかわりに゚ラヌを出したす。

       -W     以䞋のむベントに察しお、特別な譊告メッセヌゞを衚瀺したす。

          o   volatile                 でない自動倉数が                longjmp
              の呌び出しによっお倉曎され埗る堎合です。これらの譊告は、最適化コンパむル
              の時のみ問題になり埗たす。

              コンパむラは                                              setjmp
              の呌び出しのみを芋おいたす。コンパむラは、どこで         longjmp
              が呌び出されるかを知るこずはで-
              たせん。実際には、シグナルハンドラは      コヌド䞭の任意の堎所で
              longjmp     を呌び出すこずがでい泙后埓っお、実際には    longjmp
              ぞの呌び出しが危険な郚分からはおこなわれおいないために問題のないプ
              ログラムであっおも、譊告が発せられるこずになりたす。

          o   関数が、倀を䌎っおリタヌンする堎合ず、倀を䌎わずにリタヌンする堎合の䞡方
              が起こりうる堎合です。
              (関数の最埌を抜けおいくこずは、倀を䌎わずに関数をリタヌンするずみなされたす。)
              䟋えば、次の関数がこの皮類の譊告を匕さこしたす。

              foo (a)
              {
                if (a > 0)
                  return a;
              }

              ある関数           (abort           やlongjmp            を含む)
              が決しおリタヌンしないずいうこずを     GNU     CC     が理解で-
              ないために、にせの譊告 が発生するかもしれたせん。

          o   匏文       (expression-statement)       たたはコンマ匏の巊郚分が
              䞀切の副䜜甚を含たない堎合です。
              譊告を抑制するには、䜿甚しない匏を  void   にゥ瀇奜箞靎堂爟気ぁ
              䟋えば    `x[i,j]'    ずいった匏は譊告されたすが、`x[(void)i,j]'
              は譊告されたせん。

          o   笊号無しの倀が 0 ず `>' たたは `<=' で比范される堎合です。

       -Wimplicit-int
              型を指定しおいない宣蚀に察しお譊告したす。

       -Wimplicit-function-declaration
              宣蚀に先立っお甚いられた関数に察しお譊告したす。

       -Wimplicit
              -Wimplicit-int      および       -Wimplicit-function-declaration
              ず同じです。

       -Wmain main
              関数が䞍審な型で宣蚀あるいは定矩されおいる堎合に譊告したす。
              通垞、main  は倖郚リンケヌゞを持ち、  int  を返し、0  個たたは 2
              個の匕数をずる関数です。

       -Wreturn-type
              関数の戻り倀の型が、デフォルトである                         int
              に定矩された時に垞に譊告したす。たた、戻り倀の型が
              voidでない関数内に、戻り倀のない                          return
              文がある堎合にも垞に譊告したす。

       -Wunused
              ロヌカル倉数が宣蚀されたにも関わらず䜿甚されおいない堎合、静的に宣蚀さ
              れた関数の実䜓が定矩されおいない堎合、蚈算結果が明らかに
              利甚されおいない堎合に垞に譊告したす。

       -Wswitch
              switch
              文がむンデックスずしお列挙型をずっおいる時、その列挙型䞭のいく぀
              かの倀に察する  case  が欠けおいる堎合に垞に譊告したす。(default
              ラベルが存圚する堎合、この譊告は出たせん。)
              このオプションを䜿甚した堎合   には、列挙型の範囲を越えた   case
              ラベルも、垞に譊告されたす。

       -Wcomment
              コメントの開始文字列                                        `/*'
              がコメント䞭に珟れた時に垞に譊告したす。

       -Wtrigraphs
              トラむグラフの出珟を垞に譊告したす
              (トラむグラフが䜿甚可胜であるず仮定したす)。

       -Wformat
              printf,                                                    scanf
              などぞの呌び出しに察しお、䞎えられた匕数が、フォヌマット文字列の指
              定を満造垢觀燭鮖っおいるかを怜査したす。

       -Wchar-subscripts
              配列の添字の型が                                            char
              であった堎合に譊告したす。これはよくある間違いのもずです。
              いく぀かのマシンにおいおはこの型が笊号付い任△襪海箞髻
              プログラマはしばしば忘れおしたいたす。

       -Wuninitialized
              初期化されおいない自動倉数が䜿甚されおいたす。

              これらの譊告は、最適化コンパむルを行なう時のみ発生したす。なぜなら、
              コンパむラは最適化を行なう時にのみデヌタフロヌ情報を必芁ずするからです。
              もし    `-O'    を指定しなかった堎合は、この譊告を埗るこずはで-
              たせん。

              これらの譊告は、レゞスタ割り圓おの察象ずなった倉数に぀いおのみ発生したす。
              埓っお、volatile
              であるず宣蚀された倉数や、アドレス䞊に割り圓おられた倉数、サむズが
              1,                   2,                   4,                   8
              バむト以倖の倉数に関しおはこれらの譊告は発生したせん。
              さらに、構造䜓、共甚䜓、配列に぀いおは、たずえそれらがレゞスタに
              割り圓おられたずしおも、これらの譊告は発生したせん。

              ある倉数によっお蚈算された倀が結局䜿甚されないような倉数に぀いおは、䞀切の
              譊告が生じないこずに泚意しお䞋さい。このような蚈算は、譊告が衚瀺される前に
              デヌタフロヌ解析によっお削陀されたす。

              これらの譊告をオプションにした理由の䞀぀は、GNU               CC
              がただあたり犬なくお、
              あるコヌドが䞀芋間違いを含むかのように芋えおも
              それは実は正しいものかもしれない、     ずいうこずを    GNU    CC
              が理解でい芆ぁ△箞いΔ癌里任后 ここにその 1 ぀の䟋を挙げたす。

              {
                int x;
                switch (y)
                  {
                  case 1: x = 1;
                    break;
                  case 2: x = 4;
                    break;
                  case 3: x = 5;
                  }
                foo (x);
              }

              もし  y  の倀が垞に  1,  2  あるいは  3  である限りは  x  は垞に
              初期化されたす。しかし  GNU CC はこれを知るこずはでい泙擊鵝もう
              1 ぀の䞀般 的な䟋を挙げたす。

              {
                int save_y;
                if (change_y) save_y = y, y = new_y;
                ...
                if (change_y) y = save_y;
              }

              これはバグを含みたせん。なぜなら                          save_y
              は、その倀が蚭定された時のみ䜿甚されるからです。

              いく぀かのにせの譊告は、䜿甚しおいる決しおリタヌンしない関数党おに察しお
              volatile ず宣蚀するこずによっお防ぐこずが可胜です。

       -Wparentheses
              ある特定の文脈䞭で括匧が省略されおいた堎合に譊告したす。

       -Wtemplate-debugging
              C++
              プログラムにおいおテンプレヌトを䜿甚しおいる際に、デバッグが完党に
              可胜でない堎合を譊告したす (C++ のみ)。

       -Wall  党おの䞊に挙げた                                            `-W'
              オプションを結合したものです。これらのオプションは党お、
              たずえマクロずの組み合わせ
              であっおも、避けたほうがいいず我々が掚奚する甚法や、
              簡単に避けるこずがでい襪䌐眅垢信じおいる甚法に関するものです。

       残りの             `-W...'             オプションは             `-Wall'
       によっおは暗黙のうちに指定されたせん。なぜならこれらは、クリヌンなプ
       ログラムにおいおも、ある状況においおは䜿甚するこずが劥圓であるず我々が
       考える構造に぀いおの譊告を行なうオプションだからです。

       -Wtraditional
              䌝統的な            C            ず            ANSI            C
              においお異なった振舞いをする特定の構造に぀いお譊 告したす。

          o   マクロ匕数がマクロ本䜓内の文字列定数に珟れるものです。これは、䌝統的な
              C        に       おいおはその匕数で眮換したしたが、ANSI       C
              においおは定数の䞀郚ずしお扱わ れたす。

          o   ブロック内で倖郚宣蚀であるず宣蚀され、か぀そのブロックの終端の埌で
              䜿甚されおいる関数です。

          o   オペランドずしお long 型をずる switch 文です。

       -Wshadow
              ロヌカル倉数が他のロヌカル倉数を隠しおいる時に垞に譊告したす。

       -Wid-clash-len
              2                 ぀の党く別の識別子の最初の                 len
              文字が䞀臎した時に譊告したす。これはある皮の旧匏な
              おばかさんコンパむラでコンパむルされ埗るプログラムを䜜る堎合に圹に立ちたす。

       -Wpointer-arith
              関数型や void の "サむズ" に䟝存するものを党お譊告したす。GNU  C
              はこれらに察しお、  サむズ  1  を割り圓おおいたす。これは void *
              ポむンタず関数ぞのポむンタにおける蚈算を簡䟿にするためです。

       -Wcast-qual
              ポむンタが、型修食子が削陀されるように-
              ャストされる党おの堎合に譊告したす。  䟋えば  const  char  *  を
              普通の char * にゥ瀇奜箞靎疹豺腓坊拗陲なされたす。

       -Wcast-align
              ポむンタのゥ瀇奜箞砲いお、そのタヌゲットに芁求される恭条件が
              倧いなるようなゥ瀇奜箞鯀瓊瞳拗陲靎泙后磎┐  char  * が int *
              ぞずゥ瀇奜箞気譎襪凜∪或瑀     2、あるいは      4      バむト-
              界でしかアクセスで い芆ぅ泪蜡鵑砲いおは譊告が発せられたす。

       -Wwrite-strings
              文字定数に察しお、型 const char[length] を䞎え、非-const の char
              *
              ポむンタぞのアドレスのコピヌに察しお譊告するようにしたす。この譊告は、
              宣蚀ずプロトタむプにおいお                                 const
              の䜿甚を非垞に泚意深くおこなっおいさえすれば、  文字列定数に曞-
              蟌みをしそうなコヌドをコンパむル時に発芋するこずを助けたすが、
              そうでない堎合は由果茝廚䜵慊蠅任后これが、我々がこの譊告を
              `-Wall' のリク゚ストに含めなかった理由です。

       -Wconversion
              同じ匕数が䞎えられた時に、プロトタむプが存圚する堎合ずプロトタむプが
              存圚しない堎合ずで、異なった型倉換を匕-
              起こす堎合に぀いお譊告したす。
              これは固定小数点から浮動小数点ぞの倉換やその逆、デフォルトの動䜜ず異なる固定
              小数点匕数の幅や笊号の楊気諒儡垢含たれたす。

       -Waggregate-return
              構造䜓や共甚䜓を返す関数を定矩した堎合や、
              それらを呌び出す党おの堎合に譊告したす。   (配列を返すこずがで-
              る蚀語においおも、これは譊告を匕さこしたす。)

       -Wstrict-prototypes
              匕数の型を指定せずに関数を宣蚀、あるいは定矩した堎合に譊告したす。
              (以前に匕数の型を指定した宣蚀が存圚する堎合には、旧匏の関数宣蚀に察しおは
              譊告をしたせん。)

       -Wmissing-declarations
              グロヌバルな関数を、その前にプロトタむプ宣蚀をせずに定矩した堎合に
              譊告したす。
              この譊告は、たずえその定矩自身がプロトタむプを含んでいたずしおも発生したす。
              この譊告の目的は、ヘッダファむル䞭にグロヌバル関数の定矩を忘れるこ
              ずを防ぐこずにありたす。

       -Wredundant-decls
              同䞀スコヌプ䞭で耇数回、同䞀察象を宣蚀した堎合に、たずえそれが正圓で䜕も
              倉化させない堎合であっおも譊告したす。

       -Wnested-externs
              関数内で extern 宣蚀を行なった堎合に譊告したす。

       -Wenum-clash
              異なる列挙型の間で倉換を行なった際に譊告したす (C++ のみ)。

       -Wlong-long
              long                                                        long
              型が䜿甚されおいる堎合に譊告したす。これはデフォルトです。
              この譊告メッセヌゞを抑止するには                `-Wno-long-long'
              フラグを甚いお䞋さい。フラグ        `-Wlong-long'         および
              `-Wno-long-long' は、フラグ `-pedantic' 䜿甚時のみ考慮されたす。

       -Woverloaded-virtual
              (C++                                                     のみ。)
              導出クラスにおいお、仮想関数の定矩は基底クラスで定矩された仮想関数の型
              の-
              述ず䞀臎しおいなければなりたせん。このオプションを䜿甚するこずによっ
              お、基底クラスにおける仮想関数ず同䞀の名前を持ち、基底クラスのいかなる
              仮想関数ずも異なった型の-
              述を持぀関数に察しお譊告が行われたす。これに
              よっお、導出クラスが仮想関数を定矩しようずしお倱敗する堎合を譊告するこ
              ずがでい泙后

       -Winline
              関数がむンラむン宣蚀されおいる、あるいは      -finline-functions
              オプションが䞎えられおいる堎合に、関数をむンラむン展開で-
              なかった堎合 に譊告したす。

       -Werror
              譊告を゚ラヌずしお扱いたす。譊告の埌にコンパむルを䞭断したす。

ãƒåŠãƒäžãƒå¥ã‚å“ã‚ãƒå»ã‚èœãƒè…ン
       GNU  CC   は、ナヌザのプログラムや   GCC   の双方をデバッグするために、
       倚くのオプションを備えおいたす。

       -g     オペレヌティングシステムのネむティブのフォヌマット (stabs, COFF,
              XCOFF,          DWARF)           でデバッグ情報を生成したす。GDB
              はこのデバッグ情報に基づい お動䜜するこずがでい泙后

              stabs   フォヌマットを䜿甚するほずんどのシステムにおいおは、`-g'
              を指定するず、GDB  だけが䜿甚でい詬省なデバッグ情報が䜿甚可胜に
              なりたす。                  この特別の情報は                 GDB
              に察しおはよりよいデバッグを行なうこずを可胜
              ずしたすが、おそらく他のデバッガに察しおはクラッシュ、あるいはそのプログラムを
              読めなくしおしたいたす。この特別な情報の生成を制埡するためには
              `-gstabs+',   `-gstabs',   `-gxcoff+',   `-gxcoff',  `-gdwarf+',
              `-gdwarf' を䜿甚しおください (䞋技仮)。

              他の倚くの  C  コンパむラず異なり、GNU  CC  は  `-g'   を   `-O'
              ずずもに䜿甚するこずを蚱しおいたす。最適化されたコヌドが通る近道は、
              時には驚くべし芯未鮎犬濬䞪垢もしれたせん。
              定矩したはずの倉数が存圚しなかったり、
              制埡の流れが予想もしなかった堎所に移動したり、結果が定数ずわかる蚈算や、
              結果がすでに手元にある文は実行されなくなり、ある文がルヌプの倖に远い出されお
              別の堎所で実行されたりしたす。

              それにも関わらず、このオプションは最適化された出力のデバッグを可胜ずし
              おいたす。これによっお、バグを含むかもしれないプログラムに察しお
              オプティマむザを䜿甚するこずがでい襪茲Δ砲芆蠅泙后

       以䞋のオプションは、GNU  CC   を   1   ぀以䞊のデバッグフォヌマットを扱
       えるように䜜成しおある堎合に猶廚任后

       -ggdb  (もしサポヌトされおいれば)ネむティブのフォヌマットでデバッグ情報を生成
              したす。これは可胜な限りの党おの GDB 拡匵を含みたす。

       -gstabs
              (もしサポヌトされおいれば)                                 stabs
              フォヌマットでデバッグ情報を生成したす。        ただし       GDB
              拡匵は含みたせん。このフォヌマットはほずんどの BSD システム䞊 の
              DBX で利甚でい襯䟫ヌマットです。

       -gstabs+
              (もしサポヌトされおいれば)                                 stabs
              フォヌマットでデバッグ情報を生成したす。  ただし  GNU   デバッガ
              (GDB)       でしか理解でい芆       GNU       拡匵を䜿甚したす。
              この拡匵を䜿甚するず、他のデバッガでは、クラッシュや
              プログラムが読めなくなるなどの圱響がおそらく出たす。

       -gcoff (サポヌトされおいれば)                                      COFF
              フォヌマットでデバッグ情報を生成したす。    これは、System     V
              Release  4  より前の  ほずんどの  System  V  䞊の SDB で利甚で-
              るフォヌマットです。

       -gxcoff
              (サポヌトされおいれば)                                     XCOFF
              フォヌマットでデバッグ情報を生成したす。こ   れは   IBM  RS/6000
              システムにおいお         DBX          デバッガによっお䜿甚される
              フォヌマットです。

       -gxcoff+
              (もしサポヌトされおいれば)                                 XCOFF
              フォヌマットでデバッグ情報の生成を行         いたす。ただし、GNU
              デバッガ    (GDB)    によっおのみ理解され埗る    GNU    拡匵を䜿
              甚したす。これらの拡匵を䜿甚するず、他のデバッガに察しおはクラッシュやプ
              ログラムを読みずり䞍胜にするなどの圱響を及がし埗たす。

       -gdwarf
              (もしサポヌトされおいれば)                                 DWARF
              フォヌマットでデバッグ情報の生成を行    いたす。これはほずんどの
              System    V    Release    4    システムにおいお    SDB    によっ
              お䜿甚される圢匏です。

       -gdwarf+
              (もしサポヌトされおいれば)                                 DAWRF
              フォヌマットでデバッグ情報の生成を行         いたす。ただし、GNU
              デバッガ    (GDB)    によっおのみ理解され埗る    GNU    拡匵を䜿
              甚したす。これらの拡匵を䜿甚するず、他のデバッガに察しおはクラッシュや
              プログラムを読みずり䞍胜にするなどの圱響を及がし埗たす。

       -glevel
       -ggdblevel
       -gstabslevel
       -gcofflevel -gxcofflevel

       -gdwarflevel
              デバッグ情報を芁求したすが、同時に                         level
              によっおどの皋床の情報が必芁かを指定したす。デフォルトのレベルは
              2 です。

              レベル                                                         1
              は、デバッグを予定しないプログラムの郚分に察しおバックトレヌス
              を生成するに十分な最䜎限の情報を生成したす。これは関数ず倖郚倉数の-
              è¿° を含みたすが、ロヌカル倉数や行番号に関する情報は含みたせん。

              レベル                                                         3
              はプログラムに含たれる党おのマクロ定矩などの特別な情報を含みたす。
              いく぀かのデバッガは                                       `-g3'
              の䜿甚によっおマクロの展開をサポヌトしたす。

       -p     プログラム     prof     によっお䜿甚されるプロファむル情報を曞-
              蟌む特別なコヌドを生成したす。

       -pg    プログラム     gprof    によっお䜿甚されるプロファむル情報を曞-
              蟌む特別なコヌドを生成したす。

       -a     基本ブロックのプロファむル情報を曞-
              蟌む特別なコヌドを生成したす。これは
              それぞれのブロックが䜕回実行されたかを杵燭靎泙后このデヌタは
              tcov
              のようなプログラムによっお解析されたす。ただし、このデヌタフォヌマットは
              tcov   が期埅するものずは異なっおいたす。最終的には、GNU   gprof
              が凊理でい襪茲Δ乏板む気譎襪戮です。

       -ax    ファむル                                                 `bb.in'
              から基本ブロックプロファむルパラメヌタを読み出し、      ファむル
              `bb.out'                     にプロファむル結果を曞そ䞪垢燭瓩痢
              特別なコヌドを生成したす。                               `bb.in'
              は関数のリストを保持しおいたす。
              このリストに含たれる関数に入るず、プロファむリングがオンになりたす。
              最倖偎関数を抜けるず、プロファむリングはオフになりたす。
              関数名が  `-' で始たっおいる堎合、その関数はプロファむル察象倖に
              なりたす。もし関数名が唯䞀に定たらない堎合は、
              `/path/filename.d:functionname'  ず欺劌垢襪海箞任海譎蕕魘菠未任-
              たす。 `bb.out' には、いく぀かの利甚可胜な関数がリストされたす。
              特別な意味をも぀関数が      4     ぀ありたす:     `__bb_jumps__'
              はゞャンプ頻床を   `bb.out'    に曞そ䞪靎泙后    `__bb_trace__'
              は基本ブロック列を  `gzip'  にパむプし、  ファむル  `bbtrace.gz'
              に曞そ䞪靎泙后        `__bb_hidecall__'         は         call
              呜什をトレヌスから陀倖したす。    `__bb_showret__'   は   return
              呜什をトレヌスに含めるようにしたす。

       -dletters
              コンパむル䞭の                                           letters
              で指定されるタむミングに、デバッグ甚のダンプを生成するように指瀺したす。
              これはコンパむラをデバッグするために䜿甚されたす。ほずんどのダンプのファむル
              名は゜ヌスファむル名に                                         1
              単語を぀なげたものになりたす。(䟋えば、`foo.c.rtl'            や
              `foo.c.jump' などです)。

       -dM    党おのマクロ定矩をダンプし、プリプロセス終了時に出力に曞-
              出したす。 その他には䜕も曞そ䞪靎泙擊鵝

       -dN    党おのマクロ名をダンプし、プリプロセス終了時に出力に曞-
              出したす。

       -dD    党おのマクロ定矩をプリプロセス終了時に通垞の出力に加えおダンプしたす。

       -dy    パヌス䞭にデバッグ情報を暙準゚ラヌ出力にダンプしたす。

       -dr    RTL 生成埌に `file.rtl' に察しおダンプしたす。

       -dx    関数をコンパむルするかわりに、RTL
              を生成するのみの凊理を行いたす。通垞は                       `r'
              ずずもに䜿甚されたす。

       -dj    最初のゞャンプ最適化の埌に、`file.jump' に察しおダンプしたす。

       -ds    共通郚分匏削陀
              (しばしば共通郚分匏削陀に続くゞャンプ最適化も含みたす)    の終了
              時に `file.cse' に察しおダンプしたす。

       -dL    ルヌプ最適化終了時に `file.loop' に察しおダンプしたす。

       -dt    第                     2                      共通郚分匏削陀段階
              (しばしば共通郚分匏削陀に続くゞャンプ最適化も          含みたす)
              の終了時に、`file.cse2' に察しおダンプしたす。

       -df    フロヌ解析終了埌に、`file.flow' に察しおダンプしたす。

       -dc    呜什コンビネヌション終了時に                      `file.combine'
              に察しおダンプしたす。

       -dS    第      1      呜什スケゞュヌリング段階終了時に     `file.sched'
              に察しおダンプしたす。

       -dl    ロヌカルレゞスタ割り圓お終了時に                     `file.lreg'
              に察しおダンプしたす。

       -dg    グロヌバルレゞスタ割り圓お終了時に                   `file.greg'
              に察しおダンプしたす。

       -dR    第     2     呜什スケゞュヌリング段階終了時に      `file.sched2'
              に察しおダンプしたす。

       -dJ    最終ゞャンプ最適化終了時に `file.jump2' に察しおダンプしたす。

       -dd    遅延分岐スケゞュヌリング終了時に                      `file.dbr'
              に察しおダンプしたす。

       -dk    レゞスタからスタックぞの転換終了時に                `file.stack'
              に察しおダンプしたす。

       -da    以䞊の党おのダンプを生成したす。

       -dm    凊理の終了時に、メモリ䜿甚に関する統蚈情報を暙準゚ラヌ出力に出力したす。

       -dp    どのようなパタヌンや遞択肢が䜿甚されたかを瀺すコメントをアセンブラ出力
              䞭のコメントで解説したす。

       -fpretend-float
              クロスコンパむラで凊理を行なう際に、ホストマシンず同じ浮動小数点フォヌマット
              をタヌゲットマシンが持぀かのように振舞わせたす。これは浮動小数点定
              数の誀った出力を匕さこしたすが、実際の呜什列はおそらく  GNU  CC
              を タヌゲットマシンで起動した堎合ず同じものずなるでしょう。

       -save-temps
              通垞の    "䞀時"    䞭間ファむルを消去せずに保存したす。これらは
              カレントディレクトリに眮かれ、゜ヌスファむルに基づいた名前が付けられたす。
              埓っお、`foo.c'          を           `-c           -save-temps'
              を䜿甚しおコンパむルした堎合は、  `foo.cpp', `foo.s' が、`foo.o'
              ず同様に生成されたす。

       -print-libgcc-file-name=library
              ラむブラリファむル                  `library                   '
              の完党な絶察名を衚瀺したす。このファむルはリンクの際のみに䜿甚され、
              それ以倖の働い呂△蠅泙擊鵝このオプションが指定された堎合は、GNU
              CC                                                            は
              コンパむルやリンクを䜕も行なわず、ただファむル名を衚瀺するのみです。

       -print-libgcc-file-name
              `-print-file-name=libgcc.a' ず同じです。

       -print-prog-name=program
              `-print-file-name'    ず䌌おいたすが、`cpp'   のような   program
              を怜玢したす。

æœæ’é匿„ã‚ãƒå»ã‚èœãƒè…ン
       これらのオプションは様々な皮類の最適化凊理を制埡したす。

       -O

       -O1    最適化を行いたす。最適化コンパむルは幟分長めの凊理時間ず、倧-
              な関数に察 する非垞に倚くのメモリを必芁ずしたす。

              `-O'
              が指定されなかった堎合は、コンパむラの目暙はコンパむルのコストを
              䜎枛するこずや、目的の結果を埗るためのデバッグを可胜ずするこずに眮かれ
              たす。それぞれの文は独立しおいたす。぀たり、ブレヌクポむントでプログラムを
              停止させるこずによっお、任意の倉数に新し
              い倀を代入したり、プログラムカりンタを他の文ぞず倉曎するこずを可胜ずし、
              その゜ヌスコヌドにプログラマが望む正しい結果を埗るこずを可胜にしたす。

              `-O'                            を指定しなかった堎合は、register
              ず宣蚀した倉数のみがレゞスタぞず割り圓おられたす。コンパむルの結果ず
              しお埗られるコヌドは、PCC                を                 `-O'
              なしで䜿甚した堎合ず比范しお若干良くないものずなりたす。

              `-O'
              が指定されるず、コンパむラはコヌドのサむズず実行時間を枛少させる
              こずを詊みたす。

              `-O'  を指定するこずによっお、 `-fthread-jumps' ず `-fdefer-pop'
              のフラグが指定されたす。遅延スロットをも぀マシンでは
              `-fdelayed-branch'
              が指定されたす。フレヌムポむンタを䜿わないデバッグをサポヌトしおいる
              マシンでは、`-fomit-frame-pointer'
              も指定されたす。マシンによっおはさらにその他のフラグが
              指定されるこずもありたす。

       -O2    さらに最適化を行いたす。サポヌトされおいる最適化手段のうち、
              空間ず速床のトレヌドオフを含たないものはほずんどの党お䜿甚されたす。
              䟋えばルヌプのアンロヌリングや関数のむンラむン化は行われたせん。
              -O    ず比范しお、このオプションはコンパむル時間ず生成コヌドの-
              胜の双方を増加 させたす。

       -O3    さらなる最適化を行いたす。これは                             -O2
              が行う党おの最適化手段に加えお      -finline-functions      も-
              効にしたす。

       -Os    サむズ優先で最適化したす。
              普通、コヌドを増倧させるこずのない党おの     -O2      最適化が-
              効になりたす。
              曎に、コヌドサむズを枛らすように蚭蚈された最適化も行いたす。

       -O0    最適化を行いたせん。

              耇数の       -O       オプションを指定した堎合は、レベル番号の-
              無に関わらず、最埌に指定した ものが邑になりたす。

       `-fflag' の圢匏を持ったオプションは、マシン独立のフラグです。ほずんどの
       フラグは邑圢匏ず無効圢匏の双方を持っおいたす。`-ffoo'     の無効圢匏は
       `-fno-foo'
       です。以䞋のリストでは、デフォルトではない方の圢匏のみを瀺したす。
       これに察しお                                                      `no-'
       を削陀する、あるいは远加するこずによっお双方の圢匏を生成するこず
       が可胜です。

       -ffloat-store
              浮動小数点倉数をレゞスタに栌玍したせん。このオプションは   68000
              のように     (68881     の)     浮動小数点レゞスタが      double
              よりも高い粟床を持っおいるず思われるマシンにおいお、望たない超過粟床を
              抑制するこずを可胜にしたす。

              ほずんどのプログラムにおいおは、超過粟床は単に良い結果を生むだけですが、
              いく぀かのプログラムは正確な                                IEEE
              の浮動小数点フォヌマット定矩に䟝                  存しおいたす。
              このようなプログラムに察しお `-ffloat-store' を䜿甚したす。

       -fmemoize-lookups

       -fsave-memoized
              コンパむルを高速に行なうために、ヒュヌリスティックスを䜿甚したす
              (C++       のみ)。これらのヒュヌリスティックスはデフォルトでは-
              効になっおい
              たせん。なぜなら、これはある皮の入力ファむルにしか効果がなく、その他の
              ファむルではかえっおコンパむルが䜎速になるからです。

              最初に、コンパむラはメンバ関数ぞの呌び出し
              (あるいはデヌタメンバぞの参   照)    を構築したす。これは    (1)
              どのクラスでその名前のメンバ関数が実装さ れおいるかを決定し、(2)
              どのメンバ関数ぞの呌び出しであるかずいう問題
              (これはどの皮類の型倉換が必芁ずなるかずいう決定も含みたす)
              を解決し、(3)                 呌び出し偎に察するその関数の可芖-
              を怜査するずいう䜜業を行なう必芁がありたす。
              これらは党お、コンパむルをより䜎速にしおしたいたす。通垞は、そのメンバ
              関数ぞの                                                       2
              床目の呌び出しが起こった堎合も、この長い凊理がたた行なわれ
              るこずになりたす。これは次のようなコヌド

                cout << "This " << p << " has " << n << " legs.\n";

              は、これらの              3             ぀の手順を             6
              回繰り返すずいうこずを意味したす。これに察し  お、゜フトりェア-
              ャッシュを䜿甚するず、そのゥ瀇奪蜡玊悗"ヒット
              "は、コストを劇的に䜎枛するこずが期埅でい泙后垀なこずに、-
              ャッシュ
              の導入によっお異なったレむダの機構を実装するこずが必芁ずなり、それ
              自身のオヌバヘッドが生じおしたいたす。`-fmemoize-lookups'
              はこの゜フトりェアゥ瀇奪蜡玊鰺効にしたす。

              メンバずメンバ関数ぞのアクセス特暩                       (可芖)
              はある関数におけるコンテゥ奜
              ず別の関数におけるものずでは異なるので、        g++         は-
              ャッシュをフラッシュしなければなりたせん。`-fmemoize-lookups'
              フラグを䜿甚するず、党おの関数をコンパむルするたびに毎回-
              ャッシュを                   フラッシュしたす。`-fsave-memoized'
              フラグは同䞀の゜フトりェアゥ瀇奪蜡玊砲匔い董▲灰鵐僖ぅ蕕前回
              コンパむルした関数のコンテゥ奜箞、次にコンパむルするコンテ-
              ストず同         䞀のアクセス特暩を䜑靎蚎い襪箞柆芆擊觧には、-
              ャッシュを保持したす。
              これは同䞀クラス䞭に倚くのメンバ関数を定矩しおいる時に特に-
              効です。        他のクラスのフレンドになっおいるメンバ関数を陀-
              、同䞀のクラスに属しお
              いる党おのメンバ関数のアクセス特暩は、党お同䞀です。このような堎合は
              ゥ瀇奪蜡玊鬟䟫薀奪蜡玊垢詆芁はありたせん。

       -fno-default-inline
              クラススコヌプ䞭に定矩されたメンバ関数をデフォルトでむンラむン関数ずす
              る凊理を行ないたせん (C++ のみ)。

       -fno-defer-pop
              それぞれの関数呌び出しに察しお、関数のリタヌン盎埌に垞に匕数をポップしたす。
              関数呌出埌に匕数をポップしなければならないマシンにおいおは、
              コンパむラは通垞、いく぀かの関数の匕数をスタックに積んで、
              それらを同時にポップしたす。

       -fforce-mem
              メモリオペランドに察しお、それらに察する挔算が行なわれる前に、
              レゞスタにコピヌしたす。これは党おのメモリ参照を、朜圚的な共通郚分匏であるず
              定めるこずによっお、より良いコヌドを生成したす。もしそれが共通郚分匏でな
              かった堎合は、呜什コンビネヌションによっおレゞスタぞの読み蟌みは削
              陀されたす。私はこれがどのような違いを生み出すかずいうこずに興味がありたす。

       -fforce-addr
              メモリアドレス定数に぀いお、それらに察する挔算が行なわれる前にレゞスタ
              にコピヌしたす。これは                             `-fforce-mem'
              ず同じ手法でより良いコヌドを生成したす。私はこれがどのような違いを
              生み出すかずいうこずに興味がありたす。

       -fomit-frame-pointer
              フレヌムポむンタをレゞスタに栌玍する必芁のない関数においお、この凊理を
              行いたせん。これはフレヌムポむンタの保存、蚭定、埩垰にかかる呜什を省略
              し、さらに、倚くの関数でレゞスタ倉数ずしお䜿甚で-
              る䜙分なレゞスタを
              埗るこずを可胜にしたす。_

              Vax
              などのいく぀かのマシンでは、このフラグは効果を持ちたせん。なぜならこ
              れらのマシンでは暙準の呌び出し手順が自動的にフレヌムポむンタの蚭定を
              行なっおしたい、これが存圚しないずしたずころで䜕も節玄がで-
              ないからです。       マシン欺劵泪ロ      FRAME_POINTER_REQUIRED
              が、タヌゲットマシンがこのフラグをサポヌトするかどうかを制埡しおいたす。

       -finline-functions
              党おの単玔な関数を呌び出し偎に組み蟌んでしたいたす。コンパむラは
              ヒュヌリスティックスを甚いお、  どの関数がこの方法で組み蟌むに-
              りるほど単玔かを決定したす。

              もし、ある関数に察する党おの呌び出しを組み蟌むこずがで-
              、か぀その関数が       static        ず宣蚀されおいた堎合は、GCC
              はその関数を独立したアセンブラコヌドず しおは出力をしたせん。

       -fcaller-saves
              関数呌び出しにおいお砎壊されるであろう倀を、レゞスタに保持するこずを可
              胜ずしたす。これはこのような呌び出しの呚囲にレゞスタに察する保存、埩垰の
              特別なコヌドを出力するこずによっお実珟されたす。このような割り圓おは、そ
              れが通垞よりも良いコヌドを出力するずみなされる堎合にのみ行われたす。

              このオプションは特定のマシンではデフォルトで-
              効ずなっおいたす。これらは
              通垞、このオプションの凊理の代わりに䜿うこずがで-
              る呌び出し時保存 レゞスタが存圚しないマシンです。

       -fkeep-inline-functions
              ある関数ぞの呌び出しが党お呌び出し偎に組み蟌むこずがで-
              お、か぀その関数が                                        static
              ず宣蚀されおいたずしおも、実行時に呌び出し可胜な関数も生成したす。

       -fno-function-cse
              関数のアドレスをレゞスタに眮-
              たせん。぀たり、定たった関数を呌び出すコヌドは、
              それぞれ明瀺的な関数のアドレスを含むコヌドずなりたす。

              このオプションは効率の䜎いコヌドを生成したすが、アセンブラ出力を曞-
              換え
              るようなハックを行なう堎合には、このオプションを䜿甚しなければ
              混乱させられるこずでしょう。

       -fno-peephole
              マシン固䜑離圈璜廛曄璜觝播化を犁止したす。

       -ffast-math
              このオプションは生成コヌドのスピヌドのために、GCC
              に察しお、いく぀かの          ANSI          たたは          IEEE
              の芏則/芏栌を䟵させたす。䟋えば、このオプションは           sqrt
              関数の匕数は非負の数であるこずを仮定したす。

              このオプションはどの         `-O'         オプションによっおも-
              効ずされたせん。なぜなら、このオプションは数 孊関数に関する IEEE
              たたは       ANSI      の芏則/芏栌の厳密な実装に䟝存しお曞かれた
              プログラムに察しお誀った出力を䞎えるからです。

       以䞋のオプションは特殊な最適化に関する制埡を行いたす。`-O2'
       オプションは`-funroll-loops'           ず          `-funroll-all-loops'
       を陀くこれらの党おのオプションを邑にしたす。

       `-O'  オプションは通垞  `-fthread-jumps'  ず  `-fdelayed-branch'   を-
       効ずしたす。ただし、特殊なマシンではデフォルトの最適化に察しお
       倉曎が加えられおいるかもしれたせん。

       最適化に関する      "い畉戮いチュヌニング"      が必芁な堎合に、以䞋の
       フラグを䜿甚するこずが可胜です。

       -fstrength-reduce
              ルヌプのストレングスリダクションず繰り返し倉数の陀去を行いたす。

       -fthread-jumps
              分岐ゞャンプによっおある堎所にゞャンプした時に、最初の分岐に包括される
              比范が存圚した時に、最初の分岐のゞャンプ先を埌者の分岐先に倉曎したす。
              この倉曎先は、2                  番目の分岐条件の真停によっお、2
              番目の分岐のゞャンプ先か、                             あるいは2
              番目の分岐の盎埌に定められたす。

       -funroll-loops
              ルヌプ展開の最適化を行いたす。これはルヌプの繰り返し数がコンパむル時、
              あるいはランタむムに決定でい觧においおのみ、実行されたす。

       -funroll-all-loops
              ルヌプ展開の最適化を行いたす。これは党おのルヌプに察しお行われたす。この
              オプションは倧抵、より遅く動䜜するプログラムを生成したす。

       -fcse-follow-jumps
              共通郚分匏削陀の凊理においお、ゞャンプ呜什の行先が
              他の経路から到達でい芆ぞ豺腓蓮△修離献瀇鵐埈仁瓩魃曚┐謄奜-
              ャンを行    ないたす。䟋えば、共通郚分匏削陀凊理䞭に    else
              節を䌎った                          if
              文に出䌚った堎合、条件が停ならば分岐先に察しおも共通郚分匏削陀を続けたす。

       -fcse-skip-blocks
              これは                                      `-fcse-follow-jumps'
              に䌌おいたすが、ブロックを跚ぐゞャンプに察しおも共通郚分匏削陀を継
              続したす。共通郚分匏削陀凊理䞭に、else   節を持たない単玔な   if
              文にであった時、        `-fcse-skip-blocks'        は         if
              のボディを跚いだゞャンプに察する共通郚分匏削陀凊理を継続したす。

       -frerun-cse-after-loop
              ルヌプ最適化が行なわれた埌に、再床共通郚分匏削陀の凊理を行いたす。

       -felide-constructors
              コンストラクタぞの呌び出しが省略で-
              るように思われる堎合に、その呌び出      しを省略したす      (C++
              のみ)。このフラグを指            定した堎合は、GNU           C++
              は以䞋のコヌドに察しお、䞀時オブゞェクトを経由せずに  y  を  foo
              ぞの呌び出しの結果から盎接初期化したす。

              A foo (); A y = foo ();

              このオプションを䜿甚しない堎合は、GNU   C++   は最初に   y   をA
              型の適切なコンストラクタを呌び出すこずによっお初期化したす。そしお、
              foo       の結果を䞀時オブゞェクトに栌玍し、最終的には       `y'
              の倀を䞀時オブゞェクトの倀に入れ換えたす。

              デフォルトの振舞い  (`-fno-elide-constructors')   が、ANSI   C++
              暙準のドラフトには芏定されおいたす。コンストラクタ
              が副䜜甚を含むプログラムに察しお、`-felide-constructors'
              を指定するず、そのプログラムは異なった動䜜をする可胜-
              がありたす。な
              ぜなら、いく぀かのコンストラクタの呌び出しが省略されるからです。

       -fexpensive-optimizations
              比范的コストの高いいく぀かの些现な最適化を行いたす。

       -fdelayed-branch
              タヌゲットマシンにおいおこのフラグがサポヌトされおいる堎合は、遅延分岐
              呜什埌の呜什スロットを呜什の順番倉曎によっお利甚するように蚭定したす。

       -fschedule-insns
              タヌゲットマシンにおいおこのフラグがサポヌトされおいる堎合は、必芁な
              デヌタを利甚可胜になるたで埅぀こずによる実行の遅滞を防ぐために、呜什
              の順番の倉曎を行いたす。これは遅い浮動小数点呜什やメモリ読み蟌み呜什の実
              行においお、それらの結果を必芁ずする呜什の前に他の呜什を詰め蟌みたす。

       -fschedule-insns2
              `-fschedule-insns'
              ず䌌おいたすが、レゞスタ割圓お凊理の埌にもう䞀床呜什スケゞュヌリングの
              段階を眮-
              たす。これは、比范的レゞスタ数が少なく、メモリロヌド呜什   が  1
              サむクルよりも倚くを芁するマシンにおいお、特に効果的です。

ã‚æ‹ãƒç’ã‚æ®ãƒå¥ãƒè‚ã‚ãƒå»ã‚èœãƒè…ン
       デフォルトでは、GNU                                                  CC
       コンパむラは、珟圚䜿甚しおいるマシンず同じタむプの
       コヌドをコンパむルしたす。しかし、GNU       CC       はクロスコンパむラ
       ずしおもむンストヌルするこずが可胜です。実際には、異なったタヌゲット
       マシンのための様々なコンフィギュレヌションの  GNU  CC  は、同時にいく぀
       もむンストヌルするこずが可胜です。そこで、どの  GNU  CC  を䜿甚するかを
       指定するために、`-b' オプションを䜿甚するこずがでい泙后

       これに加えお、叀い、あるいはより新しいバヌゞョンの GNU CC  も同時にいく
       ぀もむンストヌルしおいくこずがでい泙后これらのうち  1 ぀ (おそらくもっ
       ずも新しいもの)
       がデフォルトずなりたす。しかし、ひょっずしたら別のものを䜿
       いたくなるかもしれたせん。

       -b machine
              匕数                                                     machine
              は、コンパむルのタヌゲットマシンを芏定したす。これは    GNU   CC
              をクロス コンパむラずしおむンストヌルした時に様僂任后

              machine                  に指定する倀は、GNU                  CC
              をクロスコンパむラずしおコンフィギュレヌション
              した時に䞎えたマシンタむプず同じです。䟋えば、80386 䞊の  System
              V      で実行されるプログラムのために      `configure     i386v'
              ずいうコンフィギュレヌションを行なったクロスコンパむラを起動した
              い堎合は、`-b i386v' ず指定したす。

              `-b'
              の蚭定を省略した堎合は、通垞は䜿甚しおいるマシンず同タむプのマシン
              のためのコンパむルが行われたす。

       -V version
              匕数         version         は、起動される        GNU        CC
              のバヌゞョンを芏定したす。これは耇数のバヌゞョンが
              むンストヌルされおいる堎合に様僂任后磎┐匌  version  が `2.0'
              ならば、GNU CC バヌゞョン 2.0 を起動するこずを意味したす。

              `-V'   を指定しなかった堎合のデフォルトのバヌゞョンは、GNU    CC
              をむンストヌル
              する時に調敎可胜です。通垞は、もっずも䞀般的な䜿甚に勧めるこずがで-
              る バヌゞョンがここに指定されたす。

ãƒæ³ã‚èœãƒé¶äŸé å­çŒã‚ãƒå»ã‚èœãƒè…ン
       それぞれのタヌゲットマシンタむプは、それぞれの特別なオプションを持぀
       こずが可胜です。`-m' で始たるオプション矀は、様々なハヌドりェアモデルや
       コンフィギュレヌション--䟋えば         68010         ず         68020、
       浮動小数点コプロセッサの楊--                            などを遞択で-
       たす。このオプションを指定するこずによっお、コンパむラは    どれか    1
       ぀のモデル、
       あるいはコンフィギュレヌションに察するコンパむルが可胜です。

       いく぀かのコンフィギュレヌションは、通垞はそのプラットフォヌム䞊の
       他のコンパむラずのコマンドラむンに関するの互換䞖鬚箞襪燭
       の特別なオプションを甚意しおいたす。

       以䞋は 68000 シリヌズのために定矩された `-m' オプションです。

       -m68000

       -mc68000
              68000          のためのコヌドを生成したす。これは          68000
              ベヌスのシステムに察しお
              コンフィギュレヌションを行なったコンパむラのデフォルトです。

       -m68020

       -mc68020
              (68000  ではなく) 68020 のためのコヌドを生成したす。これは 68020
              ベヌスの
              システムに察しおコンフィギュレヌションを行なったコンパむラのデフォルト
              です。

       -m68881
              浮動小数点挔算のために                                     68881
              呜什を含んだ出力を行いたす。これはほずんどの               68020
              ベヌスのシステムにおいお、コンパむラのコンフィギュレヌション時に
              -nfp を指定されなかった堎合のデフォルトです。

       -m68030
              68030          のためのコヌドを生成したす。これは          68030
              ベヌスのシステムに察しお
              コンフィギュレヌションを行なったコンパむラのデフォルトです。

       -m68040
              68040          のためのコヌドを生成したす。これは          68040
              ベヌスのシステムに察しお
              コンフィギュレヌションを行なったコンパむラのデフォルトです。

       -m68020-40
              68040
              のためのコヌドを生成したすが、新しい呜什を䜿甚したせん。この結果ずし
              お埗られるコヌドは、68020/68881,           68030,          68040
              のいずれのシステムにおいおも、 比范的高い皎修鮖ちたす。

       -mfpa  浮動小数点挔算のために Sun FPA 呜什を含んだ出力を行いたす。

       -msoft-float
              浮動小数点挔算のためにラむブラリを呌び出す出力を行いたす。 _-mshort
              int 型を short int 型のように 16 ビット幅ずみなしたす。

       -mnobitfield
              ビットフィヌルド呜什を䜿甚したせん。`-m68000'     は暗黙のうちに
              `-mnobitfield' を含みたす。

       -mbitfield
              ビットフィヌルド呜什を䜿甚したす。`-m68020'       は暗黙のうちに
              `-mbitfield'
              を含みたす。これは倉曎されおいない゜ヌスの堎合のデフォルトです。

       -mrtd  固定個数の匕数をずる関数に察しお、異なった関数呌び出し芏玄を䜿甚したす。
              これは、リタヌン時に匕数をポップする                         rtd
              呜什を利甚するものです。これは呌び出し偎で匕数をポップさせる必芁がな
              いために、1 呜什を省略するこずが可胜ずなりたす。

              この呌び出し芏玄は通垞の   Unix   で䜿甚されおいる方匏ずは互換-
              がありたせん。そ                                    のため、Unix
              コンパむラでコンパむルされたラむブラリを呌び出す必芁があ
              る限りは、䜿甚するこずはでい泙擊鵝

              さらに、党おの可倉匕数をずり埗る関数     (     printfを含みたす)
              に察しお、関数プロトタむプを甚意する必芁がありたす。さもないず、
              これらの関数に察しお誀ったコヌドが生成されたす。

              さらに、関数に察しお倚過ぎる匕数を぀けお呌び出すコヌドを曞いた堎合、こ
              れは深刻な誀ったコヌドを生成したす。(通垞は倚過ぎる倉数は害を及がすこず
              なく無芖されたす。)

              rtd  呜什は  68010  ず  68020 によっおサポヌトされたすが、 68000
              では䜿甚で たせん。

       以䞋は Vax のために定矩された `-m' オプションです。

       -munix 特定のいく぀かのゞャンプ呜什             (aobleq             等)
              を出力したせん。これらの呜什で長いレンゞを䜿甚した堎合、     Vax
              甚の Unix アセンブラはこれを凊理でい泙擊鵝

       -mgnu  これらのゞャンプ呜什を出力したす。アセンブルには             GNU
              アセンブラの䜿甚 を仮定したす。

       -mg    浮動小数点数に぀いお、d-フォヌマットではなく、g-フォヌマットのための
              コヌドを出力したす。

       以䞋は SPARC でサポヌトされおいる `-m' スむッチです。

       -mfpu

       -mhard-float
              浮動小数点呜什を含む出力を行いたす。これはデフォルトです。

       -mno-fpu

       -msoft-float
              浮動小数点の凊理のためにラむブラリを呌び出す出力を行いたす。
              _-msoft-float    は呌び出し芏玄を倉曎したす。したがっお、    _
              のプログラムをこのオプションでコンパむルしない限り、
              このオプションは意味をなしたせん。

       -mno-epilogue

       -mepilogue
              -mepilogue                                を指定するこずによっお
              (デフォルト)、コンパむラは関数を抜けるため
              のコヌドを垞に関数の最埌に出力したす。関数の途䞭で関数を抜けるコヌドは党お、
              関数の最埌の終了コヌドぞのゞャンプずしお生成されたす。

              -mno-epilogue
              を蚭定するこずによっお、コンパむラは関数から抜けるコヌドをむンラむン化
              するこずを詊みたす。

       -mno-v8

       -mv8

       -msparclite
              これらの       3       ぀のオプションは       SPARC       アヌ-
              テクチャのバリ゚ヌションを遞択 するために䜿甚されたす。

              デフォルトでは、(Fujitsu                               SPARClite
              甚にコンフィギュレヌションしない限  りは)  GCC  は  SPARC アヌ-
              テクチャ v7 甚のコヌドを生成したす。

              -mv8        は、SPARC        v8         甚コヌドを生成したす。v7
              コヌドずの違いは、敎数の乗算ず敎数  の陀算が v7 では存圚しないが
              v8 には存圚するずいう点のみです。

              -msparclite  は、SPARClite   甚のコヌドを生成したす。これは   v7
              には存圚せず  SPARClite  に存圚する、敎数乗算、敎数陀算ずスゥ瀇
              (ffs) 呜什を远加したす。

       -mcypress

       -msupersparc
              これら                                                         2
              ぀のオプションはコヌド最適化察象のプロセッサを遞択するための
              ものです。

              -mcypress  を甚いるず(これがデフォルト)、  コンパむラは  Cypress
              CY7C602       チップ甚にコヌドを最適化したす。      このチップは
              SparcStation/SparcServer    3xx     シリヌズに甚いられおいたす。
              このオプションは叀い  SparcStation  1,  2,  IPX などにも適甚で-
              たす。

              -msupersparc     を甚いるず、コンパむラは     SuperSparc     CPU
              甚にコヌドを最適化したす。  このチップは  SparcStation 10, 1000,
              2000                                シリヌズに甚いられおいたす。
              このオプションを甚いるず、SPARC                               v8
              の党呜什セットを甚いるようになりたす。

       以䞋は Convex のために定矩された `-m' オプションです。

       -mc1   C1           甚の出力を行いたす。これはコンパむラが           C1
              甚にコンフィギュレヌション を行なわれた時のデフォルトです。

       -mc2   C2           甚の出力を行いたす。これはコンパむラが           C2
              甚にコンフィギュレヌション を行なわれた時のデフォルトです。

       -margcount
              匕数列の前に、匕数の数をワヌドに眮くコヌドを生成したす。いく぀かの可搬-
              のない                Convex                や               Vax
              のプログラムはこのワヌドを必芁ずしたす。(デバッガは
              䞍定長匕数リストを持぀関数を陀いお、このワヌドを必芁ずしたせん。これらの
              情報はシンボルテヌブルに曞かれたす。)

       -mnoargcount
              匕数の数を瀺すワヌドを省略したす。これは倉曎されおいない゜ヌスを䜿甚した
              堎合のデフォルトです。

       以䞋は、AMD Am29000 のために定矩された `-m' オプションです。

       -mdw   DW
              ビットが立っおいるこずを仮定したコヌドを出力したす。これは、ハヌドりェア
              によっおバむト操䜜やハヌフワヌド操䜜がサポヌトされおいるずいうこずを
              意味したす。これはデフォルトです。

       -mnodw DW ビットが立っおいないこずを仮定したコヌドを出力したす。

       -mbw   システムがバむト操䜜やハヌフワヌド曞-
              蟌み操䜜をサポヌトしおいるこずを仮定した
              コヌドを生成したす。これはデフォルトです。

       -mnbw  システムがバむト操䜜やハヌフワヌド曞-
              蟌み操䜜をサポヌトしおいないこずを仮定し
              たコヌドを生成したす。これは暗黙のうちに `-mnodw' を含みたす。

       -msmall
              スモヌルメモリモデルを䜿甚したす。これは党おの関数のアドレスが単䞀の
              256KB    のセグメント内に入るこずず、関数の絶察アドレスが   256K
              以䞋にある こずを仮定したす。このオプションは call 呜什を const,
              consth, calli シヌケンスの代わりに䜿甚するこずを可胜にしたす。

       -mlarge
              call 呜什が䜿甚でい襪海箞魏枉蠅靎泙擊鵝これはデフォルトです。

       -m29050
              Am29050 甚のコヌドを生成したす。

       -m29000
              Am29000 甚のコヌドを生成したす。これはデフォルトです。

       -mkernel-registers
              gr96-gr127          レゞスタぞの参照の代わりに         gr64-gr95
              を参照するコヌドを生成したす。このオプションは、ナヌザのコヌドか
              ら䜿甚で-
              るグロヌバルレゞスタから区別されたグロヌバルレゞスタの集合
              を利甚するカヌネルのコヌドをコンパむルする時に䜿甚でい泙后

              ただし、このオプションが䜿甚されおいる時にも                `-f'
              フラグ䞭のレゞスタ名は通垞のナヌザモヌドでの名前を䜿甚したす。

       -muser-registers
              通垞のグロヌバルレゞスタの集合                        gr96-gr127
              を䜿甚したす。これはデフォルトです。

       -mstack-check
              __msp_check
              ぞの呌び出しをそれぞれのスタック調敎の埌に挿入したす。これはしばしば
              カヌネルのコヌドにおいお甚いられたす。

       以䞋は、Motorola      88K      アヌゥ謄チャのために定矩された     `-m'
       オプションです。

       -m88000
              m88100          ず           m88110           の双方で比范的高-
              胜で動䜜するコヌドを生成したす。

       -m88100
              m88100         に最適なコヌドを生成したす。ただし         m88110
              においおも動䜜したす。

       -m88110
              m88110      に最適なコヌドを生成したす。      ただし      m88100
              においおは動䜜しないかも知れたせん

       -midentify-revision
              アセンブラ出力䞭に、゜ヌスファむル名、コンパむラ名ずバヌゞョン、
              タむムスタンプ、䜿甚されたコンパむルフラグを気靎          ident
              ディレクティブを挿入したす。

       -mno-underscores
              シンボル名の最初にアンダヌスコア-
              ャラクタを぀けないアセンブラ出力を生
              成したす。デフォルトでは個々の名前に察しお、アンダヌスコアをプレフィック
              スずしお䜿甚したす。

       -mno-check-zero-division

       -mcheck-zero-division
              初期の                                                       88K
              のモデルはれロによる陀算の凊理に問題を持っおいたした。特に、そ
              れらの倚くにおいおトラップが生じなかったこずは問題でした。これ
              らのオプションを䜿甚するこずによっお、れロ陀算を発芋し、䟋倖を知らせる
              コヌドを埋め蟌むこずを犁止 (あるいは明瀺的に蚱可) するこずがで-
              たす。党    おの   88K   甚の   GCC   のコンフィギュレヌションは
              `-mcheck-zero-division' をデフォルトずしお䜿甚しおいたす。

       -mocs-debug-info

       -mno-ocs-debug-info
              88Open  Object   Compatibility   Standard   "OCS"   で定矩された
              (それぞれのスタックフレヌム䞭で䜿甚されるレゞスタに関する)
              付加的なデバッグ                              情報を取り蟌みたす
              (たたは省略したす)。これらの付加的な情報は       GDB      によっ
              おは必芁ずされたせん。DG/UX,    SVr4,    Delta     88     SVr3.2
              ではデフォルトでこの情         報を含めたす。その他の        88K
              コンフィギュレヌションではデフォルトで省略したす。

       -mocs-frame-position

       -mno-ocs-frame-position
              OCS
              で芏定されおいるように、レゞスタの倀に察しお、スタックフレヌム䞭の
              特定の堎所に保存されるずいう動䜜を匷制したす
              (あるいは芁求したせん)。     DG/UX,    Delta88    SVr3.2,    BCS
              のコンフィギュレヌションでは              `-mocs-frame-position'
              をデフォルトずしお、それ以倖の   88k  コンフィギュレヌションでは
              `-mno-ocs-frame-position' をデフォルトずしお䜿甚しおいたす。

       -moptimize-arg-area

       -mno-optimize-arg-area
              関数の匕数がどのような方法でスタックフレヌムに栌玍されるかを指定したす。
              `-moptimize-arg-area'
              はスペヌスを節玄したすが、いく぀かのデバッガ (GDB  は含たれない)
              を                  クラッシュさせたす。`-mno-optimize-arg-area'
              はより暙準に埓っおいたす。デフォルトでは                     GCC
              は匕数゚リアの最適化 を行いたせん。

       -mshort-data-num
              デヌタ参照時に、それらの凊理を                                r0
              からの盞察参照で行なうこずによっお小さなコヌドにするこずを可胜ずしたす。
              これは倀のロヌドを   (その他の堎合は   2  呜什かかるずころを)  1
              呜什で行な                             うこずを可胜にしたす。num
              をこのオプションずずもに指定するこずによっお、どのデヌタ参照が圱響
              を受けるかを指定するこずがでい泙后磎┐     `-mshort-data-512'
              を指定するず、512 バむト以内のディスプレヌスメントのデヌタ参照が
              圱響を受けるこずになりたす。 `-mshort-data-num' は  num  が  64K
              よりも倧い䜵は効果を持ちたせん。

       -mserialize-volatile

       -mno-serialize-volatile
              volatile なメモリぞの参照に぀いお、シヌケンシャルな敎合䞖鮖った
              コヌドを生成する、あるいは生成したせん。

              GNU                                                           CC
              はデフォルトではどのプロセッササブモデルを遞んだ堎合においおも、
              敎合-
              を垞に保蚌したす。これがどのように実珟されおいるかは、サブモデルに
              䟝存しおいたす。

              m88100
              プロセッサはメモリ参照の順番を入れ換えないので、垞にシヌケンシャルな
              敎合䞖亙櫃燭譎泙后もし   `-m88100'   を䜿甚した堎合は、GNU   CC
              はシヌケンシャルな敎合䞖鯀櫃匔燭瓩瞭 別な呜什を生成したせん。

              m88110
              プロセッサにおけるメモリ参照の順番は、必ずしもそれらの芁求を行
              なった呜什の順番ずは䞀臎したせん。特に、読み蟌み呜什は、先行する曞-
              蟌み
              呜什よりも先に実行され埗たす。このような順番の入れ換えは、マルチプロセッサ時に
              volatile            なメモリの参照におけるシヌケンシャルな敎合-
              を厩しおしたいたす。       `-m88000'       たたは      `-m88110'
              を指定した堎合には、GNU CC  は、必芁な堎合は特別な呜什を生成し、
              呜什の実行が正しい順番で行なわれるこずを匷制したす。

              ここで生成される敎合-
              を保蚌するための特別な呜什はアプリケヌションの
              胜に察しお圱響を及がしたす。もしこの保蚌無しで問題がないずいうこずがわかっ
              おいる堎合は、`-mno-serialize-volatile'     を䜿甚するこずがで-
              たす。

              `-m88100'                     オプションを䜿甚しおいるが、m88110
              における実行時にシヌケンシャルな                          敎合-
              が必芁ずされる堎合は、`-mserialize-volatile' を䜿甚するべい任后

       -msvr4

       -msvr3 System  V  release  4   (SVr4)   に関連したコンパむラの拡匵を邑
              (`-msvr4')                あるいは無効                (`-msvr3')
              にしたす。これは以䞋の内容を制埡したす。

          o   生成するアセンブラの文法の皮類     (これは     `-mversion-03.00'
              を䜿甚するこずによっお独立に制埡でい泙)。

          o   `-msvr4'    は    C    プリプロセッサに察しお   `#pragma   weak'
              を理解させたす。

          o   `-msvr4'              は、GCC              に               SVr4
              によっお䜿甚されおいる付加的な宣蚀ディレクティブ
              を生成させたす。

       `-msvr3'             は、SVr4             を陀く党おの             m88K
       コンフィギュレヌションにおけるデフォ ルトです。

       -mtrap-large-shift

       -mhandle-large-shift
              31                                                ビットより倧-
              いビットシフトを怜出するコヌドを埋め蟌みたす。これらの
              オプションを指定するこずによっお、それぞれトラップ、あるいは適切に凊理す
              るコヌドが埋め蟌たれたす。デフォルトでは       GCC        は倧-
              なビットシフトには 特別な察策を行いたせん。

       -muse-div-instruction
              非垞に初期の                      88K                     アヌ-
              テクチャのモデルは陀算呜什を持っおいたせん。埓っ         お、GCC
              はデフォルトでは陀算呜什を生成したせん。このオプションは陀算呜什
              が安党に䜿甚でい襪箞いΔ海箞鮖慊蠅靎泙后

       -mversion-03.00
              DG/UX       コンフィギュレヌションには、2       ぀の        SVr4
              の皮類がありたす。このオプション  は  -msvr4  オプションによっお
              hybrid-COFF  ず  real-ELF   のどちらが䜿甚されるかを遞択したす。
              他のコンフィギュレヌションはこのオプションを無芖したす。

       -mwarn-passed-structs
              関数に察しお構造䜓を枡した堎合ず、関数が構造䜓を返した堎合に譊告したす。
              構造䜓を枡す芏玄は    C     蚀語の発展の䞭で倉化しおおり、移怍-
              の問題をしば     しば生じるこずになりたす。デフォルトでは    GCC
              はこの譊告を行いたせん。

       以䞋のオプションは IBM RS6000 のために定矩されたものです。

       -mfp-in-toc

       -mno-fp-in-toc
              浮動小数点定数を       Table       of       Contents       (TOC)
              に入れるかどうかを指定したす。
              このテヌブルは党おのグロヌバル倉数ず関数のアドレスを栌玍したす。デフォルト
              では     GCC     は浮動小数点定数をここに栌玍したす。もし    TOC
              が算術あふれをおこす                    堎合は、`-mno-fp-in-toc'
              を䜿甚するこずによっお                                       TOC
              のサむズを小さくするこずが可胜であり、
              算術あふれを防ぐこずがでい襪任靎腓Α

       以䞋は IBM RT PC 甚に定矩された `-m' オプションです。

       -min-line-mul
              敎数の乗算に察しおむンラむンのコヌド列を生成したす。これはデフォルトです。

       -mcall-lib-mul
              敎数の乗算に察しお lmul$$ を呌び出したす。

       -mfull-fp-blocks
              フルサむズの浮動小数点デヌタブロックを生成したす。これは     IBM
              によっお掚
              奚されおいる最䜎限のスクラッチスペヌスの量を包含したす。これはデフォルトです。

       -mminimum-fp-blocks
              浮動小数点デヌタブロック内に特別なスクラッチスペヌスを含めたせん。これに
              よっお、より小さなコヌドが生成されたすが、実行は遅くなりたす。
              なぜならスクラッチスペヌスが動的に確保されるからです。

       -mfp-arg-in-fpregs
              IBM  の関数呌び出し芏玄ずは互換䞖里芆じ蚎喀䞪啓蟒腓鮖藩僂靎泙后
              この芏玄では浮動小数点匕数を浮動小数点レゞスタに入れお枡したす。
              このオプションを指定するず、varargs.h         や        stdarg.h
              で浮動小数点オペランドが䜿甚でい芆なるこずに泚意しお䞋さい。

       -mfp-arg-in-gregs
              浮動小数点に察しお通垞の関数呌び出し芏玄を䜿甚したす。これはデフォルトです。

       -mhc-struct-return
              1                                                 ワヌドより倧-
              な構造䜓を返す時に、レゞスタではなくメモリを䜿甚しお返したす。
              これは      MetaWare     HighC     (hc)     コンパむラずの互換-
              を提䟛したす。`-fpcc-struct-return'       を䜿甚するこずによっお
              Portable C Compiler (pcc) ずの互換䞖鯑 るこずがでい泙后

       -mnohc-struct-return
              1                                                 ワヌドより倧-
              な構造䜓を返す時に、レゞスタによっお返される堎合がありたす。
              これはその方が䟿利であるず考えられる時に䜿甚されたす。これはデフォルトです。
              IBM                               が提䟛するコンパむラずの互換-
              を埗るためには、`-fpcc-struct-return'   ず  `-mhc-struct-return'
              の双方を䜿甚したす。

       以䞋は MIPS ファミリのために定矩された `-m' オプションです。

       -mcpu=cpu-type
              呜什スケゞュヌリング時に、デフォルトのマシンタむプを    cpu-type
              に仮定したす。デフォルトの       cpu-type       は       default
              です。この遞択はすべおのマシンに察する最長のサむクル数を元にコヌドを
              生成したす。これは、生成されるコヌドがどの        MIPS       cpu
              においおも適圓な速床  で凊理されるようにするためです。これ以倖の
              cpu-type    の遞択ずしおは、    r2000,   r3000,   r4000,   r6000
              がありたす。特定の                                      cpu-type
              を遞択した堎合は、その特定のチップに適したスケゞュヌルが行われたす。
              コンパむラは、          -mips2           たたは           -mips3
              スむッチが䜿甚されおいない堎合は、MIPS   ISA   (instruction  set
              architecture)                     のレベル                     1
              に合臎しないコヌドを生成するこずはありたせん。

       -mips2 MIPS   ISA   のレベル   2   (branch   likely  呜什,  平方根呜什)
              による呜什矀   を出力したす。   -mcpu=r4000    ず    -mcpu=r6000
              スむッチは、 -mips2 ず共に䜿甚される必芁がありたす。

       -mips3 MIPS  ISA  のレベル 3 (64 ビット呜什) を含む呜什矀を出力したす。
              -mcpu=r4000 スむッチは、 -mips2 ず同時に䜿甚する必芁がありたす。

       -mint64

       -mlong64

       -mlonglong128
              これらのオプションは珟圚動䜜したせん。

       -mmips-as
              MIPS        アセンブラのためのコヌドを生成し、        mips-tfile
              を起動しお通垞のデバッグ情報を远加したす。     これは      OSF/1
              リファレンスプラットフォヌム
              以倖の党おのプラットフォヌムにおけるデフォルトです。       OSF/1
              リファレンスプラットフォヌムは                          OSF/rose
              オブゞェクトフォヌマットを 䜿甚したす。スむッチ -ggdb,  -gstabs,
              -gstabs+    のうちのどれかが䜿甚されおいる堎合は、    mips-tfile
              プログラムは、stabs を MIPS ECOFF 䞭にカプセル化したす。

       -mgas  GNU        アセンブラ甚のコヌドを生成したす。これは        OSF/1
              リファレンスプラットフォヌム       におけるデフォルトです。OSF/1
              リファレンスプラットフォヌムは                          OSF/rose
              オブゞェクトフォヌマットを䜿甚したす。

       -mrnames

       -mno-rnames
              -mrnames
              スむッチは出力コヌドにおいお、レゞスタの名前ずしお、ハヌドりェア名の代
              わりに  MIPS ゜フトりェア名を䜿甚するこずを指定したす。(぀たり、
              a0  を  $4  の代わりに䜿甚したす)。  GNU  アセンブラは  -mrnames
              スむッチをサポヌトしたせん。MIPS
              アセンブラは゜ヌスファむルに察しお            MIPS             C
              プリプロセッサを起動するでしょう。                   -mno-rnames
              スむッチがデフォルトです。

       -mgpopt

       -mno-gpopt
              -mgpopt                       スむッチは、党おのデヌタ宣蚀をテ-
              ストセクション䞭の党呜什の前に曞そ
              すこずを指定したす。これによっお、党おの   MIPS   アセンブラは、
              ショヌトグロヌバル、あるいは静的なデヌタアむテムに察しお、2
              ワヌドではなく、1           ワヌドのメモリ参照呜什を生成したす。
              これは最適化が指定された堎合のデフォルトです。

       -mstats

       -mno-stats
              -mstats
              が指定された堎合は、コンパむラによっおむンラむンでない関数が凊理される
              ごずに、暙準゚ラヌ出力ファむルに察しお、そのプログラムに察する統蚈情報
              を瀺す                                                         1
              行のメッセヌゞを出力したす。このメッセヌゞは、保存したレゞスタ
              の数、スタックのサむズなどを瀺したす。

       -mmemcpy

       -mno-memcpy
              -mmemcpy
              スむッチは、党おのブロック転送に察しお、むンラむンコヌドを生成する代わ
              りに、適切なストリング関数      (memcpy      たたは       bcopy)
              を呌び出すコヌドを生成したす。

       -mmips-tfile

       -mno-mips-tfile
              -mno-mips-tfile            スむッチを指定するず、           MIPS
              アセンブラがデバッグサポヌトのために生成したオブゞェクトファむルに察し、
              mips-tfile       を䜿甚した埌凊理を行いたせん。       mips-tfile
              が実行されないず、デバッガからはロヌカル倉数を扱うこずがで-
              たせん。         さらに、         stage2        ず        stage3
              のオブゞェクトはアセンブラに枡される䞀時的なファむル名をオブゞェクトファむル
              䞭に埋め蟌たれお持っおおり、このためそれらを比范した堎合に同䞀のも
              のずはみなされたせん。

       -msoft-float
              浮動小数点挔算のためにラむブラリを呌び出す出力を行いたす。 _-mhard-float
              浮動小数点呜什を含んだ出力を生成したす。これは倉曎されない゜ヌスを䜿甚し
              た堎合のデフォルトです。

       -mfp64 ステヌタスワヌド䞭の                                          FR
              ビットが立っおいるこずを仮定したす。これは     32     個の    32
              ビット浮動小数点      レゞスタの代わりに、32       個の       64
              ビットの浮動小数点レゞスタが存圚するずい
              うこずを瀺したす。この堎合は、同時に   -mcpu=r4000   ず   -mips3
              スむッチを指定する必芁がありたす。

       -mfp32 32                            個の                            32
              ビット浮動小数点レゞスタが存圚するずいうこずを仮定したす。こ
              れはデフォルトです。

       -mabicalls

       -mno-abicalls
              いく぀かの                       System                      V.4
              の移怍が䜍眮独立コヌドのために䜿甚する疑䌌呜什        .abicalls,
              .cpload, .cprestore を出力する、あるいは出力したせん。

       -mhalf-pic

       -mno-half-pic
              -mhalf-pic                                      スむッチは、テ-
              ストセクション䞭に参照を配眮する代わりに、倖郚参照を行
              なうポむンタをデヌタセクションに配眮し、それをロヌドする動䜜を指定したす。
              このオプションは珟圚ただ動䜜したせん。     -Gnum     は      num
              バむト以䞋のグロヌバル、あるいは静的なアむテムを、通垞のデヌタや
              bss         セクションではなく、小さなデヌタ、たたは         bss
              セクションに配眮するこずを                          指定したす。
              これによりアセンブラは、通垞では 2  ワヌドの参照を行うずころを、
              グロヌバルポむンタ    (gp    たたは    $28)    を基準ずした    1
              ワヌドのメモリ参照呜什を生成可胜ずなりたす。 デフォルトでは MIPS
              アセンブラが䜿甚される堎合、    num    は    8   です。たた、GNU
              アセンブラが䜿甚される堎合のデフォルトは    0    です。    -Gnum
              スむッチはアセンブラ、リンカにも同様に枡されたす。党おのモゞュヌルは同䞀の
              -Gnum の倀でコンパむルされなければなりたせん。

       -nocpp MIPS        アセンブラに、ナヌザアセンブラファむル         (`.s'
              拡匵子を持ちたす)
              に察するアセンブル時のプリプロセッサの起動を抑制さ せたす。

       以䞋は、Intel 80386 ファミリ甚に定矩された `-m' オプションです。

       -m486

       -mno-486
              386                         ではなく                         486
              に最適化されたコヌドを出力する、あるいはその逆を行な
              う指定を行いたす。486         甚に生成されたコヌドは         386
              で実行可胜であり、逆も たた可胜です。

       -mpentium
              -mcpu=pentium ず同矩です。

       -mpentiumpro
              -mcpu=pentiumpro ず同矩です。

       -mcpu=cpu type
              呜什をスケゞュヌリングする際のマシンタむプのデフォルトを蚭定したす。
              CPU TYPE の遞択肢は i386, i486, i586  (pentium),  pentium,  i686
              (pentiumpro),   および   pentiumpro   です。   ある   CPU   TYPE
              を遞ぶず、その特定チップに適するようにスケゞュヌリングを
              行いたすが、                   -march=cpu                   type
              オプションを指定しない限り、コンパむラは     i386     で実行で-
              ないような コヌドは生成したせん。

       -march=cpu type
              マシンタむプ CPU TYPE 甚に呜什を生成したす。 CPU TYPE の遞択肢は
              i386, i486, pentium, および pentiumpro  です。  -march=cpu  type
              を指定するず -mcpu=cpu type も指定されたものずみなしたす。

       -msoft-float
              浮動小数点挔算のためにラむブラリを呌び出す出力を行いたす。 _-msoft-float'
              を䜿甚した堎合でも、いく぀かの浮動小数点呜什が生成されたす。

       -mno-fp-ret-in-387
              関数からの返り倀に FPU のレゞスタを䜿甚したせん。

              通垞の関数呌び出し芏玄は、たずえ FPU が存圚しなくおも  float  ず
              double                        の結果を                       FPU
              レゞスタに入れお返したす。したがっおこの堎合、
              オペレヌティングシステムは                                   FPU
              を゚ミュレヌトしなければなりたせん。

              `-mno-fp-ret-in-387'
              オプションを指定するず、浮動小数点数も通垞の  CPU レゞスタに入れ
              お返されたす。

       -mprofiler-epilogue

       -mno-profiler-epilogue
              関数から抜けるコヌドにおプロファむル情報を曞-
              出す远加コヌドを生成したす。

       以䞋は HPPA ファミリ甚に定矩された `-m' オプションです。

       -mpa-risc-1-0
              PA 1.0 プロセッサ甚のコヌドを出力したす。

       -mpa-risc-1-1
              PA 1.1 プロセッサ甚のコヌドを出力したす。

       -mkernel
              カヌネルに適したコヌドを生成したす。特に、匕数の  1  ぀ずしお DP
              レゞスタを  ずる   add   呜什の䜿甚を抑制し、その代わりに、addil
              呜什を生成したす。これは                                   HP-UX
              リンカの深刻なバグを避けるための措眮です。

       -mshared-libs
              HP-UX                                                       共-
              ラむブラリずリンクさせるコヌドを生成したす。このオプションはた
              だ完党に動䜜しおいるわけではなく、どの                        PA
              タヌゲットにおいおもデフォルト
              になっおいたせん。このオプションを指定するず、コンパむラは誀ったコヌド
              を出力し埗たす。

       -mno-shared-libs
              共優薀ぅ屮薀蠅肇螢鵐しないコヌドを生成したす。これは党おの   PA
              タヌゲット においおデフォルトのオプションです。

       -mlong-calls
              関数の呌び出し先ず呌び出し元が同䞀ファむルに含たれた堎合、呌び出し時の
              距離が  256K  を越える堎合でも動䜜するようなコヌドを出力したす。
              このオプションは、リンカから "branch out  of  range  errors"  で
              リンクを拒吊された時以倖には䜿甚しないようにしおください。

       -mdisable-fpregs
              いかなる圢においおも、浮動小数点レゞスタの䜿甚を犁止したす。
              これは浮動小数点レゞスタに配慮しないコンテゥ奜肇奜ぅ奪舛鮃圓芆
              カヌネルに察しお邑です。
              このオプションを䜿甚しお、浮動小数点凊理を行なおうずするず、
              コンパむラはアボヌトしたす。

       -mdisable-indexing
              コンパむラに察しお、indexing           addressing           mode
              を䜿甚しないように指定したす。 これによっお  MACH  においお  MIG
              によっお生成されたコヌドをコンパむルす
              る際の、あたり重芁でないいく぀かの問題を防ぐこずがでい泙后

       -mtrailing-colon
              ラベル定矩の埌にコロンを加えたす (ELF アセンブラ甚)。

       以䞋は、Intel 80960 ファミリ甚に定矩された `-m' オプションです。

       -mcpu-type
              デフォルトのマシンタむプを                              cpu-type
              に仮定したす。これは生成する呜什ずアドレッシングモヌド、そしお-
              界条件に    関係したす。    デフォルトの    cpu-type    は    kb
              です。その他の遞択ずしおは ka, mc, ca, cf, sa, sb がありたす。

       -mnumerics

       -msoft-float
              -mnumerics
              オプションはプロセッサが浮動小数点呜什をサポヌトするこずを瀺したす。
              -msoft-float
              オプションは浮動小数点サポヌトを仮定しないこずを瀺したす。

       -mleaf-procedures

       -mno-leaf-procedures
              葉に䜍眮する手続い砲匔い董      call      呜什ず同様に      bal
              呜什でも呌び出すこずを可胜ずしたす  (あるいは、したせん)。これは
              bal                   呜什がアセンブラ、たたはリンカによっお眮-
              換えられ埗る堎合には、盎接呌
              び出しに察しお効率の良いコヌドを埗るこずがで-
              たす。ただし、それ以倖の堎
              合は効率の良くないコヌドを生成したす。䟋えば、関数ぞのポむンタ経由の呌び
              出しや、この最適化をサポヌトしないリンカを䜿甚した堎合などがこれ
              に該圓したす。

       -mtail-call

       -mno-tail-call
              (マシン非䟝存の郚分を越えお)
              末尟再垰を分岐に倉換する凊理に関するさ
              らなる最適化を行いたす(たたは行いたせん)。
              この手法の適甚が正圓でないずいうこずに関する刀断
              が完党ではないので、ただこのオプションを䜿甚するこずは適圓でないかも
              しれたせん。デフォルトは -mno-tail-call です。

       -mcomplex-addr

       -mno-complex-addr
              この                                                        i960
              の実装では耇雑なアドレッシングモヌドの䜿甚が優䜍であるず仮定
              したす      (あるいは仮定したせん)。耇雑なアドレッシングモヌドは
              K-シリヌズでは              䜿甚する䟡倀は無いかも知れたせんが、
              C-シリヌズでは確かに䜿甚する䟡倀がありたす。              珟圚は
              -mcomplex-addr             が、CB             ず              CC
              を陀く党おのプロセッサにおけるデフォルトです。

       -mcode-align

       -mno-code-align
              より高速なフェッチのためにコヌドを    8   バむトにアラむンしたす
              (たたは䜕も                したせん)。珟圚では                 C
              シリヌズの実装においおのみデフォルトで邑にしおいたす。

       -mic-compat

       -mic2.0-compat

       -mic3.0-compat
              iC960 v2.0 たたは v3.0 ずの互換䞖鮖たせたす。

       -masm-compat

       -mintel-asm
              iC960 アセンブラずの互換䞖鮖たせたす。

       -mstrict-align

       -mno-strict-align
              アラむンされないアクセスを蚱可したせん (あるいは蚱可したす)。

       -mold-align
              Intel  による  gcc  リリヌスバヌゞョン  1.3  (gcc  1.37  ベヌス)
              ずの構造䜓の 恭条件に関する互換䞖鮖たせたす。珟圚は、  #pragma
              align           1           が同時に仮定されおしたい、無効化で-
              ないずいうバグを持っおいたす。

       以䞋は、DEC Alpha 甚に定矩された `-m' オプションです。

       -mno-soft-float

       -msoft-float
              浮動小数点操䜜に察しお、ハヌドりェアによる浮動小数点呜什を䜿甚したす
              (し  たせん)。もし、-msoft-float が指定された堎合は、`libgcc1.c'
              内の関数が浮動小数点挔算に䜿甚されたす。ただし、これらのルヌチンが
              浮動小数点挔算を゚ミュレヌトするルヌチンによっお眮-
              換えられおいるか、
              そのような゚ミュレヌションルヌチンを呌び出すようにコンパむルされおいる
              のでない限り、これらのルヌチンは浮動小数点挔算を行なっおしたいたす。浮動小
              数点挔算のない                                             Alpha
              のためのコンパむルを行なうためには、ラむブラリも
              これらを呌び出さないようにコンパむルされおいなければなりたせん。

              浮動小数点挔算のない                                       Alpha
              の実装は、浮動小数点レゞスタを必芁ずするず
              いうこずに泚意しお䞋さい。

       -mfp-reg

       -mno-fp-regs
              浮動小数点レゞスタセットを䜿甚する
              (䜿甚しない)コヌドを生成したす。   -mno-fp-regs   は暗黙のうちに
              -msoft-float
              を含みたす。浮動小数点レゞスタセットが䜿甚されない堎合は、浮動小数点
              オペランドは敎数レゞスタに入れられお枡され、浮動小数点数の結果は
              $f0                 では                 なく                 $0
              に入れお返されたす。これは非暙準の関数呌び出し手順であり、
              浮動小数点数の匕数や返り倀を持぀関数で、-mno-fp-regs
              を぀けおコンパむルされたコヌドから呌び出される関数はすべおこのオプションを
              ぀けおコンパむルされおいる必芁がありたす。

              このオプションの兞型的な甚法は、浮動小数点レゞスタを䜿甚せず、したがっ
              お浮動小数点レゞスタぞのセヌブもリストアも必芁のないカヌネルを構築する
              時などがあるでしょう。

       ここに远加するオプションは        System        V       Release       4
       においお、これらのシステム䞊の                 他のコンパむラずの互換-
       のために提䟛されるものです。

       -G     SVr4   システムにおいお、gcc  は  `-G'  オプションを受け付けたす
              (そしお
              これをシステムリンカに枡したす)。これは他のコンパむラずの互換-
              のためです。           しかし、リンカオプションを            gcc
              のコマンドラむンから枡すよりも、我々は     `-symbolic'    たたは
              `-shared' の䜿甚が適圓であるず考えおいたす。

       -Qy    コンパむラが䜿甚したそれぞれのツヌルのバヌゞョンを        .ident
              アセンブラディレクティブを䜿甚しお、出力で明瀺したす。

       -Qn    .ident    ディレクティブを出力に加えるこずを抑制したす   (これは
              デフォルトです)。

       -YP,dirs
              `-l'                            で指定されたラむブラリに察しお、
              dirsで芏定されたディレクトリのみを怜玢し、他は怜玢したせん。
              dirs           䞭は、1            ぀のコロンで区切るこずにより、
              耇数のディレクトリ゚ントリを欺劌靎泙后

       -Ym,dir
              M4                      プリプロセッサを                     dir
              に怜玢したす。アセンブラがこのオプションを䜿甚したす。

ã‚é­ãƒç’ãƒå»ç”èšæˆã‚ãƒå»ã‚èœãƒè…ン
       これらのマシン独立オプションは、
       コヌド生成にお䜿甚されるむンタフェヌス芏玄を制埡したす。

       これらのほずんどは       `-f'      で始たりたす。これらのオプションは-
       効圢匏ず無効圢匏の  2  ぀の圢匏を持っ  おいたす。`-ffoo'   の無効圢匏は
       `-fno-foo'
       です。以䞋に挙げる衚においおは、このうち、デフォルトではない片
       方のみが挙げられおいたす。`no-'
       を远加するか、削陀するかによっお双方の圢匏を埗るこずがでい泙后

       -fnonnull-objects
              参照型によっお参照されるオブゞェクトはヌルでないず仮定したす
              (C++ のみ)。

              通垞は                          GNU                          C++
              は参照型によっお参照されるオブゞェクトに関しおは保守的
              な仮定を行いたす。䟋えば、コンパむラは                         a
              が以䞋のコヌドにおいおヌルでないこずをチェックする必芁がありたす。

              obj &a = g (); a.f (2);

              この皮の参照がヌルでないこずのチェックは、特別なコヌドを必芁ずしたす。
              しかし、これは倚くのプログラムにずっお無甚なものです。
              このヌルに察するチェックを必芁のない堎合     `-fnonnull-objects'
              を䜿甚するこずにより、省略するこずがでい泙后

       -fpcc-struct-return
              struct      ず      union       の倀を返す堎合に、普通の       C
              コンパむラが行なうのず同じ芏玄を䜿甚したす。
              この芏玄は小芏暡な構造䜓に察しお非効率なものずなり、たた倚くのマシンでその
              関数を再入䞍可胜ずしおしたいたす。しかしこれは、GCC
              でコンパむルされたコヌド                 ず                  PCC
              でコンパむルされたコヌドを盞互に呌び出すこずを可胜ずするずい
              う利点を持ちたす。

       -freg-struct-return
              struct                         ず                          union
              の倀を返す堎合に、可胜な堎合はレゞスタを䜿甚する芏玄を䜿甚したす。これは
              -fpcc-struct-return
              を䜿甚した堎合ず比范しお、小さな構造䜓を返す堎合に高い-
              胜を発揮したす。

              -fpcc-struct-return            ず            -freg-struct-return
              のどちらも䜿甚しなかった堎合には、GNU                         CC
              は各タヌゲットに察しお暙準で
              あるず考えられる芏玄をデフォルトずしお䜿甚したす。
              もし暙準芏玄がなかった堎合は、               -fpcc-struct-return
              をデフォルトずしお䜿甚したす。

       -fshort-enums
              enum
              型に察しお、ちょうど取り埗る倀の範囲に応じたバむト数の型を䞎えたす。
              具䜓的には、enum
              型は、その倀域を栌玍するに十分な最小の敎数型ず等䟡になりたす。

       -fshort-double
              double を float  ず同サむズにしたす。

       -fshared-data
              デヌタず非   const    倉数を、プラむベヌトなデヌタではなく、共-
              デヌタずしおコンパむルしたす。
              このオプションは、走行䞭の同じプログラム間は共優劂璜燭共䜑気譟
              プラむベヌトデヌタがそれぞれのプロセスに                       1
              ぀ず぀䞎えられるような䞀郚
              のオペレヌティングシステムで意味を持ちたす。

       -fno-common
              bss
              セクション䞭の初期化されおいないグロヌバル倉数に察しおでも、共通ブロック
              に生成するのではなく、領域を割り圓おたす。このオプションは、(extern
              を぀けずに)                同䞀の倉数を宣蚀した                2
              ぀のコンパむルに察しお、リンク時
              に゚ラヌを発生するずいう効果がありたす。このオプションは、垞にこのような動
              䜜を行なうシステムにおいおも、プログラムが正垞に動䜜するかどうかを怜査
              する堎合にのみ様僂任后

       -fno-ident
              `#ident' ディレクティブを無芖したす。

       -fno-gnu-linker
              (C++                     のコンストラクタずデストラクタのような)
              グロヌバルな初期化のコヌドを                                (GNU
              リンカがこれらを扱う暙準のシステムであるようなシステムにおいお)
              GNU       リンカで䜿甚される圢匏で出力したせん。これは       GNU
              リンカではない      リンカを䜿甚する堎合に指定したす。この堎合、
              collect2
              を䜿甚しお、確実にシステムリンカにコンストラクタずデストラクタを含
              んだコヌドを出力させる必芁がありたす。(collect2    は   GNU   CC
              のディストリビュヌションに含たれたす。)                 collect2
              を_gcc
              は自動的にそのようにコンフィギュレヌションされたす。

       -finhibit-size-directive
              .sizeアセンブラディレクティブなど、関数が途䞭で分割され、メモリ䞊の異なった
              䜍眮にそれぞれの郚分が配眮されるような堎合に䞍郜合が生じるような芁玠を
              出力したせん。このオプションは                      `crtstuff.c'
              をコンパむルする時に䜿甚されたす。それ以倖の堎所ではこれを䜿甚する
              必芁はありたせん。

       -fverbose-asm
              出力のアセンブラ䞭に特別なコメント情報を远加し、可読-
              を高めたす。この
              オプションは䞀般的には、出力のアセンブラコヌドを本圓に読みたい堎合
              (䟋え              ばコンパむラ自身をデバッグしおいるような堎合)
              にのみ効果がありたす。

       -fvolatile
              ポむンタによるメモリの参照を党お volatile ずしお扱いたす。

       -fvolatile-global
              倖郚倉数やグロヌバルデヌタアむテムぞのメモリ参照を党お  volatile
              ずしお 扱いたす。

       -fpic  このオプションがタヌゲットマシンでサポヌトされおいれば、䜍眮独立なコヌドを
              出力したす。このオプションは共優薀ぅ屮薀蠅任了藩僂謀したす。

       -fPIC  このオプションがタヌゲットマシンでサポヌトされおいれば、䜍眮独立なコヌドを
              出力したす。このオプションはダむナミックリンクに適しおおり、分岐にお
              いお倧い淵劊スプレヌスメントを芁求する堎合にも適応したす。

       -ffixed-reg
              名前が                                                       reg
              のレゞスタを固定レゞスタずしお扱いたす。生成されたコヌドはこのレゞスタ
              を参照したせん
              (ただし、スタックポむンタ、フレヌムポむンタ、その他固定甚
              途の堎合を陀い泙)。

              reg
              はレゞスタ名でなければなりたせん。受け付けられるレゞスタ名はマシン固
              䜑任△蝓▲泪蜡鶺述マクロファむル内の  REGISTER_NAMES  マクロに-
              述されたものです。

              このフラグは無効圢匏を持ちたせん。なぜなら、これは             3
              通りの指定が可胜で あるからです。

       -fcall-used-reg
              名前が                                                       reg
              のレゞスタを、関数呌び出しによっお砎壊される割り圓お可胜のレゞスタ
              ずしお取り扱いたす。これは、関数呌び出しを跚いで存圚しない䞀時領域や倉数
              ずしお割り圓るこずがで-
              たす。この指定でコンパむルされた関数は、レゞスタ             reg
              の保存や埩垰を行いたせん。

              このフラグをマシンの実行モデルにおいお、ある固定的で特殊な圹割を持っお
              いるレゞスタ、䟋えばスタックポむンタやフレヌムポむンタに察しお適甚する
              こずは、砎滅的な結果を生みたす。

              このフラグは無効圢匏を持ちたせん。なぜなら、これは             3
              通りの指定が可胜で あるからです。

       -fcall-saved-reg
              名前が                                                       reg
              のレゞスタを、関数によっお保存される割り圓お可胜なレゞスタずしお取
              り扱いたす。これは、関数呌び出しを跚いで存圚する䞀時領域や倉数ずしおも割り
              圓おるこずがでい泙后この指定でコンパむルされた関数は、レゞスタ
              reg を䜿甚する堎合、その保存ず埩垰を行いたす。

              このフラグをマシンの実行モデルにおいお、ある固定的で特殊な圹割を持っお
              いるレゞスタ、䟋えばスタックポむンタやフレヌムポむンタに察しお適甚する
              こずは、砎滅的な結果を生みたす。

              たた、このフラグを関数の返り倀が栌玍されるレゞスタに䜿甚するず、これも
              砎滅的な結果を生みたす。

              このフラグは無効圢匏を持ちたせん。なぜなら、これは             3
              通りの指定が可胜で あるからです。

ãƒå»ãƒè–ã‚å“マ
       2      ぀の      `#pragma'      ディレクティブ(指什)が      GNU     C++
       によっおサポヌトされおいたす。これは、1     ぀のヘッダファむルを      2
       ぀の目的、぀たりあるオブゞェクトクラスのための
       むンタフェヌスの定矩ずしおの目的ず、オブゞェクトクラスに含たれる内容
       の完党な定矩ずしおの目的の、䞡方の目的で䜿甚するためのものです。

       #pragma interface
              (C++                                                       のみ)
              このディレクティブを、オブゞェクトクラスを定矩しおいるヘッダファむル䞭
              に䜿甚するこずによっお、それらのクラスを䜿甚するほずんどのオブゞェクト
              ファむルの倧い気鮓詐させるこずがでい泙后名錣蓮    特定の情報
              (むンラむンメンバ関数のバックアップコピヌ、デバッグ情報、
              仮想関数実珟のための内郚テヌブル)
              の耇補がそのクラス定矩をむンクルヌドした
              それぞれのオブゞェクトファむル䞭に眮かれたす。
              このプラグマを䜿甚するこずによっお、このような耇補を防ぐこずが
              可胜ずなりたす。`#pragma                              interface'
              を含んだヘッダファむルをむンクルヌドした堎合は、これらの远加情報
              は生成されたせん       (ただし、メむンの入力゜ヌスファむル自身が
              `#pragma          implementation'         を含んでいる堎合を陀-
              たす)。そのかわり、オブゞェクトファむルは
              リンク時に解決される参照を含むこずになりたす。

       #pragma implementation

       #pragma implementation "objects.h"
              (C++                                                       のみ)
              むンクルヌドされたヘッダファむルによる完党な出力を生成させたい
              (たたそ                            れをグロヌバルに可芖化したい)
              堎合には、メむンの入力ファむル䞭でこの
              プラグマを䜿甚したす。この堎合、むンクルヌドされるヘッダファむルは、`#pragma
              interface'
              を䜿甚しおいなければなりたせん。むンラむン関数のバックアップ情報、
              デバッグ情報、仮想関数実珟甚の内郚テヌブルは、党おむンプリメンテヌション
              ファむル䞭に生成されたす。

              `#pragma                                         implementation'
              を、匕数を぀けずに䜿甚した堎合は、これはその゜ヌスファむルず同じ
              ベヌスネヌム(basename)を持぀ファむルに察しお適甚されたす。䟋えば、`allclass.cc'
              䞭の  `#pragma   implementation'   は、`#pragma   implementation
              "allclass.h"  ' ず等䟡です。もし耇数のヘッダファむルに察しお、 1
              ぀のむンプリメンテヌションファむルを察応させたい堎合は、
              文字列の匕数を䜿甚する必芁がありたす。

              1
              ぀のヘッダファむルに察しお、耇数のむンプリメンテヌションファむルを察
              応させる方法はありたせん。

é–æ…é€â–ãƒäŸã‚ïŒã‚ããƒ«
       file.c             C 蚀語゜ヌスファむル
       file.h             C 蚀語ヘッダ (プリプロセッサ) ファむル
       file.i             プリプロセス枈みの C 蚀語゜ヌスファむル
       file.C             C++ ゜ヌスファむル
       file.cc            C++ ゜ヌスファむル
       file.cxx           C++ ゜ヌスファむル
       file.m             Objective-C ゜ヌスファむル
       file.s             アセンブリ蚀語ファむル
       file.o             オブゞェクトファむル
       a.out              リンク゚ディット枈みの出力
       TMPDIR/cc*         䞀時ファむル矀
       LIBDIR/cpp         プリプロセッサ
       LIBDIR/cc1         C 蚀語コンパむラ
       LIBDIR/cc1plus     C++ コンパむラ
       LIBDIR/collect     いく぀かのマシンで必芁ずなるリンカのフロント゚ンド
       LIBDIR/libgcc.a    GCC サブルヌチンラむブラリ
       /lib/crt[01n].o    スタヌトアップルヌチン
       LIBDIR/ccrt0       C++ 甚の付加的なスタヌトアップルヌチン
       /lib/libc.a        暙準ラむブラリ、intro(3)_
       /usr/include       #include _
       LIBDIR/include     #include ファむルのための GCC 暙準ディレクトリ
       LIBDIR/g++-include #include ファむルのための付加的な g++ ディレクトリ

       LIBDIR は通垞 /usr/local/lib/machine/version の圢匏を持ちたす
       TMPDIR は環曲竞 TMPDIR (もし䜿甚可胜ならば /usr/tmp を、そうでなければ
       /tmp を䜿甚したす) からずられたす。

é–æ…é€é çŒç›®
       as(1), cpp(1), gdb(1), ld(1)
       info 䞭の `gcc', `cpp', `as', `ld', `gdb'  ゚ントリ
       Using and Porting GNU CC (for version 2.0), Richard M. Stallman; The  C
       Preprocessor,  Richard M. Stallman; Debugging with GDB: the GNU Source-
       Level Debugger, Richard M. Stallman and Roland H. Pesch; Using as:  the
       GNU Assembler, Dean Elsner, Jay Fenlason & friends; ld: the GNU linker,
       Steve Chamberlain and Roland Pesch.

ãƒäžã‚°
       バグを報告する方法に぀いおは、GCC マニュアルを参照しおください。

COPYING

       Copyright 1991, 1992, 1993 Free Software Foundation, Inc.

       Permission is granted to make and distribute verbatim  copies  of  this
       manual  provided  the  copyright  notice and this permission notice are
       preserved on all copies.

       Permission is granted to copy and distribute modified versions of  this
       manual  under  the  conditions  for verbatim copying, provided that the
       entire resulting derived work is  distributed  under  the  terms  of  a
       permission notice identical to this one.

       Permission  is  granted  to  copy  and  distribute translations of this
       manual into another language, under the above conditions  for  modified
       versions,  except  that  this  permission  notice  may  be  included in
       translations approved by the Free Software Foundation instead of in the
       original English.

äœéƒè€…
       GNU          CC          に察しお貢献した人々に関しおは、GNU         CC
       マニュアルを参照しおください。

æ—æœæ¥èªè³èš³
       现川 達己(hosokawa@mt.cs.keio.ac.jp): NetBSD 甚に翻蚳
       sakai@csl.cl.nec.co.jp, h-nokubi@nmit.mt.nec.co.jp,
       kumano@strl.nhk.or.jp, horikawa@isrd.hitachi.co.jp: FreeBSD 向けに修正,
       査閲