NameDateSize

..06-Jun-201676

ABOUT-GCC-NLSH A D05-Mar-20162.7 KiB

acinclude.m4H A D05-Mar-201618.7 KiB

aclocal.m4H A D05-Mar-20161.4 KiB

ada/H06-Jun-20162 KiB

addresses.hH A D05-Mar-20162.8 KiB

alias.cH A D06-Jun-201690.9 KiB

alias.hH A D05-Mar-20162.3 KiB

alloc-pool.cH A D05-Mar-201611.3 KiB

alloc-pool.hH A D05-Mar-20162 KiB

asan.cH A D05-Mar-201689.2 KiB

asan.hH A D05-Mar-20163.5 KiB

attribs.cH A D05-Mar-201620 KiB

attribs.hH A D05-Mar-20161.6 KiB

auto-inc-dec.cH A D05-Mar-201643.2 KiB

auto-profile.cH A D05-Mar-201649.4 KiB

auto-profile.hH A D05-Mar-20161.1 KiB

BASE-VERH A D06-Jun-20166

basic-block.hH A D05-Mar-201618.6 KiB

bb-reorder.cH A D06-Jun-201682.5 KiB

bb-reorder.hH A D05-Mar-20161.2 KiB

bitmap.cH A D05-Mar-201651.9 KiB

bitmap.hH A D05-Mar-201623.9 KiB

bt-load.cH A D05-Mar-201648.2 KiB

builtin-attrs.defH A D05-Mar-201612.4 KiB

builtin-types.defH A D05-Mar-201630.8 KiB

builtins.cH A D06-Jun-2016382.3 KiB

builtins.defH A D05-Mar-201677.2 KiB

builtins.hH A D05-Mar-20164.2 KiB

c/H06-Jun-201618

c-family/H06-Jun-201636

caller-save.cH A D05-Mar-201646 KiB

calls.cH A D06-Jun-2016161.1 KiB

calls.hH A D05-Mar-20161.3 KiB

ccmp.cH A D05-Mar-20168.7 KiB

ccmp.hH A D05-Mar-2016829

cfg-flags.defH A D05-Mar-20166.5 KiB

cfg.cH A D05-Mar-201630.3 KiB

cfg.hH A D05-Mar-20164.3 KiB

cfganal.cH A D05-Mar-201643 KiB

cfganal.hH A D05-Mar-20162.8 KiB

cfgbuild.cH A D05-Mar-201618.6 KiB

cfgbuild.hH A D05-Mar-20161,016

cfgcleanup.cH A D05-Mar-201690.3 KiB

cfgcleanup.hH A D05-Mar-20161.2 KiB

cfgexpand.cH A D06-Jun-2016182.1 KiB

cfgexpand.hH A D05-Mar-2016925

cfghooks.cH A D05-Mar-201639.3 KiB

cfghooks.hH A D05-Mar-201610.2 KiB

cfgloop.cH A D05-Mar-201647.6 KiB

cfgloop.hH A D05-Mar-201620.4 KiB

cfgloopanal.cH A D05-Mar-201613.3 KiB

cfgloopmanip.cH A D05-Mar-201654.7 KiB

cfgloopmanip.hH A D05-Mar-20162.4 KiB

cfgrtl.cH A D05-Mar-2016140.1 KiB

cfgrtl.hH A D05-Mar-20162.4 KiB

cgraph.cH A D06-Jun-201696.1 KiB

cgraph.hH A D06-Jun-2016105.3 KiB

cgraphbuild.cH A D05-Mar-201615.3 KiB

cgraphclones.cH A D06-Jun-201636.3 KiB

cgraphunit.cH A D06-Jun-201673.8 KiB

ChangeLogH A D06-Jun-2016472.6 KiB

ChangeLog-1997H A D22-Nov-2012140.7 KiB

ChangeLog-1998H A D22-Nov-2012638.7 KiB

ChangeLog-1999H A D22-Nov-2012783.5 KiB

ChangeLog-2000H A D22-Nov-20121.1 MiB

ChangeLog-2001H A D22-Nov-20121.2 MiB

ChangeLog-2002H A D22-Nov-20121.2 MiB

ChangeLog-2003H A D22-Nov-20121.3 MiB

ChangeLog-2004H A D22-Nov-20121.8 MiB

ChangeLog-2005H A D22-Nov-20121.3 MiB

ChangeLog-2006H A D22-Nov-2012874.6 KiB

ChangeLog-2007H A D22-Nov-20121.3 MiB

ChangeLog-2008H A D22-Nov-20121.1 MiB

ChangeLog-2009H A D05-Mar-20161.3 MiB

ChangeLog-2010H A D22-Nov-20121.5 MiB

ChangeLog-2011H A D05-Mar-20161.5 MiB

ChangeLog-2012H A D05-Mar-20161.3 MiB

ChangeLog-2013H A D05-Mar-20161.5 MiB

ChangeLog-2014H A D05-Mar-20161.8 MiB

ChangeLog.dataflowH A D29-Jan-2014195.9 KiB

ChangeLog.gimple-classesH A D05-Mar-2016178.8 KiB

ChangeLog.graphiteH A D13-May-2013327 KiB

ChangeLog.jitH A D05-Mar-201612.9 KiB

ChangeLog.libH A D29-Jan-2014129.7 KiB

ChangeLog.ptrH A D29-Jan-201420.5 KiB

ChangeLog.tree-ssaH A D29-Jan-2014742.6 KiB

ChangeLog.tuplesH A D29-Jan-2014304.1 KiB

chkp-builtins.defH A D05-Mar-20165.4 KiB

cif-code.defH A D05-Mar-20165 KiB

cilk-builtins.defH A D05-Mar-20161.6 KiB

cilk-common.cH A D05-Mar-201619.4 KiB

cilk.hH A D05-Mar-20164.8 KiB

cilkplus.defH A D05-Mar-20162.5 KiB

collect-utils.cH A D05-Mar-20165.3 KiB

collect-utils.hH A D05-Mar-20161.6 KiB

collect2-aix.cH A D05-Mar-201611 KiB

collect2-aix.hH A D05-Mar-20168.4 KiB

collect2.cH A D05-Mar-201682.5 KiB

collect2.hH A D05-Mar-20161.4 KiB

combine-stack-adj.cH A D05-Mar-201621.8 KiB

combine.cH A D06-Jun-2016457.7 KiB

common/H05-Mar-20168

common.mdH A D05-Mar-20163.5 KiB

common.optH A D06-Jun-201679.5 KiB

compare-elim.cH A D05-Mar-201620.5 KiB

conditions.hH A D05-Mar-20164.5 KiB

config/H06-Jun-2016158

config.buildH A D05-Mar-20163.4 KiB

config.gccH A D05-Mar-2016125.4 KiB

config.hostH A D05-Mar-20168.7 KiB

config.inH A D06-Jun-201646.9 KiB

configureH A D06-Jun-2016875.7 KiB

configure.acH A D06-Jun-2016181.4 KiB

context.cH A D05-Mar-20161.3 KiB

context.hH A D05-Mar-20161.6 KiB

convert.cH A D05-Mar-201634.1 KiB

convert.hH A D05-Mar-20161 KiB

COPYINGH A D22-Nov-201217.6 KiB

COPYING.LIBH A D22-Nov-201225.8 KiB

COPYING3H A D22-Nov-201234.3 KiB

COPYING3.LIBH A D22-Nov-20127.5 KiB

coretypes.hH A D05-Mar-20169 KiB

coverage.cH A D05-Mar-201637.5 KiB

coverage.hH A D05-Mar-20162.3 KiB

cp/H06-Jun-201679

cppbuiltin.cH A D05-Mar-20166.4 KiB

cppbuiltin.hH A D05-Mar-20161.1 KiB

cppdefault.cH A D05-Mar-20164 KiB

cppdefault.hH A D05-Mar-20162.7 KiB

cprop.cH A D05-Mar-201655.9 KiB

cse.cH A D05-Mar-2016229.6 KiB

cselib.cH A D05-Mar-201677 KiB

cselib.hH A D05-Mar-20164 KiB

cstamp-h.inH A D22-Nov-201210

data-streamer-in.cH A D05-Mar-20164.9 KiB

data-streamer-out.cH A D05-Mar-201610.4 KiB

data-streamer.cH A D05-Mar-20163.1 KiB

data-streamer.hH A D05-Mar-20169.6 KiB

DATESTAMPH A D06-Jun-20169

dbgcnt.cH A D05-Mar-20163.6 KiB

dbgcnt.defH A D05-Mar-20165.8 KiB

dbgcnt.hH A D05-Mar-20161.1 KiB

dbxout.cH A D05-Mar-2016113 KiB

dbxout.hH A D05-Mar-20162.1 KiB

dce.cH A D05-Mar-201632.5 KiB

dce.hH A D05-Mar-2016877

ddg.cH A D05-Mar-201634.1 KiB

ddg.hH A D05-Mar-20165.4 KiB

debug.cH A D05-Mar-20164 KiB

debug.hH A D05-Mar-20168 KiB

defaults.hH A D05-Mar-201639.5 KiB

DEV-PHASEH A D22-Nov-20120

df-core.cH A D05-Mar-201669.6 KiB

df-problems.cH A D05-Mar-2016126.8 KiB

df-scan.cH A D05-Mar-2016120 KiB

df.hH A D05-Mar-201646 KiB

dfp.cH A D05-Mar-201618.1 KiB

dfp.hH A D05-Mar-20162.3 KiB

diagnostic-color.cH A D05-Mar-201610.9 KiB

diagnostic-color.hH A D05-Mar-20162.2 KiB

diagnostic-core.hH A D05-Mar-20163.8 KiB

diagnostic.cH A D05-Mar-201638.1 KiB

diagnostic.defH A D05-Mar-20162.4 KiB

diagnostic.hH A D05-Mar-201611.2 KiB

doc/H06-Jun-201681

dojump.cH A D05-Mar-201636.8 KiB

dojump.hH A D05-Mar-20162.8 KiB

dominance.cH A D05-Mar-201643.8 KiB

dominance.hH A D05-Mar-20163.1 KiB

domwalk.cH A D05-Mar-20167.2 KiB

domwalk.hH A D05-Mar-20161.8 KiB

double-int.cH A D05-Mar-201639.5 KiB

double-int.hH A D05-Mar-201613.2 KiB

dse.cH A D06-Jun-2016110 KiB

dumpfile.cH A D05-Mar-201626.8 KiB

dumpfile.hH A D05-Mar-20169.2 KiB

dwarf2asm.cH A D05-Mar-201625.7 KiB

dwarf2asm.hH A D05-Mar-20162.8 KiB

dwarf2cfi.cH A D05-Mar-201694.9 KiB

dwarf2out.cH A D06-Jun-2016751.8 KiB

dwarf2out.hH A D05-Mar-20169.6 KiB

emit-rtl.cH A D06-Jun-2016166.6 KiB

emit-rtl.hH A D05-Mar-20166.8 KiB

errors.cH A D05-Mar-20163.4 KiB

errors.hH A D05-Mar-20161.6 KiB

et-forest.cH A D05-Mar-201614.9 KiB

et-forest.hH A D05-Mar-20162.6 KiB

except.cH A D05-Mar-201692.2 KiB

except.hH A D05-Mar-201612 KiB

exec-tool.inH A D05-Mar-20163.1 KiB

explow.cH A D05-Mar-201655.9 KiB

explow.hH A D05-Mar-20164.4 KiB

expmed.cH A D05-Mar-2016186 KiB

expmed.hH A D05-Mar-201620.4 KiB

expr.cH A D05-Mar-2016348.2 KiB

expr.hH A D05-Mar-201611.2 KiB

fibonacci_heap.hH A D05-Mar-201614.2 KiB

file-find.cH A D05-Mar-20164.6 KiB

file-find.hH A D05-Mar-20161.7 KiB

final.cH A D05-Mar-2016128.3 KiB

fixed-value.cH A D05-Mar-201629.8 KiB

fixed-value.hH A D05-Mar-20164.2 KiB

flag-types.hH A D05-Mar-20169.5 KiB

flags.hH A D05-Mar-20163.2 KiB

fold-const.cH A D06-Jun-2016509.1 KiB

fold-const.hH A D05-Mar-20169.3 KiB

fortran/H06-Jun-201696

fp-test.cH A D05-Mar-20165.3 KiB

FSFChangeLogH A D29-Jan-2014104.8 KiB

FSFChangeLog.10H A D29-Jan-2014381.5 KiB

FSFChangeLog.11H A D29-Jan-2014550 KiB

function.cH A D05-Mar-2016198.6 KiB

function.hH A D05-Mar-201633.5 KiB

fwprop.cH A D05-Mar-201646.2 KiB

gcc-ar.cH A D05-Mar-20166.5 KiB

gcc-main.cH A D05-Mar-20161.3 KiB

gcc-plugin.hH A D05-Mar-20165.6 KiB

gcc-symtab.hH A D05-Mar-2016941

gcc.cH A D05-Mar-2016262.7 KiB

gcc.hH A D05-Mar-20162.9 KiB

gcov-counter.defH A D05-Mar-20162.1 KiB

gcov-dump.cH A D05-Mar-201613.6 KiB

gcov-io.cH A D05-Mar-201631 KiB

gcov-io.hH A D05-Mar-201617.1 KiB

gcov-iov.cH A D05-Mar-20162.3 KiB

gcov-tool.cH A D05-Mar-201615.9 KiB

gcov.cH A D05-Mar-201664.9 KiB

gcse-common.cH A D05-Mar-20166 KiB

gcse-common.hH A D05-Mar-20161.4 KiB

gcse.cH A D06-Jun-2016122 KiB

gcse.hH A D05-Mar-20161.4 KiB

gdbasan.inH A D05-Mar-2016214

gdbhooks.pyH A D05-Mar-201620.2 KiB

gdbinit.inH A D05-Mar-20165.4 KiB

gen-pass-instances.awkH A D05-Mar-20162 KiB

genattr-common.cH A D05-Mar-20162.6 KiB

genattr.cH A D05-Mar-201613.8 KiB

genattrtab.cH A D05-Mar-2016142 KiB

genautomata.cH A D05-Mar-2016296.6 KiB

gencheck.cH A D05-Mar-20162 KiB

genchecksum.cH A D05-Mar-20162.9 KiB

gencodes.cH A D05-Mar-20162.5 KiB

genconditions.cH A D05-Mar-20167.2 KiB

genconfig.cH A D05-Mar-20169.6 KiB

genconstants.cH A D05-Mar-20163 KiB

genemit.cH A D05-Mar-201624.3 KiB

genenums.cH A D05-Mar-20161.9 KiB

generic-match-head.cH A D05-Mar-20161.9 KiB

generic-match.hH A D05-Mar-20161.2 KiB

genextract.cH A D05-Mar-201612.2 KiB

genflags.cH A D05-Mar-20167.1 KiB

gengenrtl.cH A D05-Mar-20167 KiB

gengtype-lex.cH A D06-Jun-201697.4 KiB

gengtype-lex.lH A D05-Mar-20164.9 KiB

gengtype-parse.cH A D05-Mar-201628 KiB

gengtype-state.cH A D05-Mar-201668.9 KiB

gengtype.cH A D05-Mar-2016149 KiB

gengtype.hH A D05-Mar-201616.8 KiB

genhooks.cH A D05-Mar-201610.4 KiB

genmatch.cH A D05-Mar-201698.2 KiB

genmddeps.cH A D05-Mar-20161.8 KiB

genmddump.cH A D05-Mar-20161.8 KiB

genmodes.cH A D05-Mar-201642 KiB

genmultilibH A D05-Mar-201617.2 KiB

genopinit.cH A D05-Mar-201617.4 KiB

genoutput.cH A D05-Mar-201633.2 KiB

genpeep.cH A D05-Mar-201610.8 KiB

genpreds.cH A D06-Jun-201645.2 KiB

genrecog.cH A D05-Mar-201672.3 KiB

gensupport.cH A D05-Mar-201675.9 KiB

gensupport.hH A D05-Mar-20163.6 KiB

ggc-common.cH A D05-Mar-201631.6 KiB

ggc-internal.hH A D05-Mar-20163.9 KiB

ggc-none.cH A D05-Mar-20161.8 KiB

ggc-page.cH A D05-Mar-201672.8 KiB

ggc.hH A D05-Mar-20169.5 KiB

gimple-builder.cH A D05-Mar-20163.8 KiB

gimple-builder.hH A D05-Mar-20161.4 KiB

gimple-expr.cH A D06-Jun-201626.5 KiB

gimple-expr.hH A D06-Jun-20165 KiB

gimple-fold.cH A D05-Mar-2016189.1 KiB

gimple-fold.hH A D05-Mar-20165.3 KiB

gimple-iterator.cH A D05-Mar-201623.9 KiB

gimple-iterator.hH A D05-Mar-20168.5 KiB

gimple-low.cH A D05-Mar-201627.1 KiB

gimple-low.hH A D05-Mar-2016979

gimple-match-head.cH A D05-Mar-201622.1 KiB

gimple-match.hH A D05-Mar-20161.6 KiB

gimple-pretty-print.cH A D05-Mar-201670.2 KiB

gimple-pretty-print.hH A D05-Mar-20161.5 KiB

gimple-ssa-isolate-paths.cH A D05-Mar-201618.3 KiB

gimple-ssa-strength-reduction.cH A D06-Jun-2016110.1 KiB

gimple-ssa.hH A D05-Mar-20165.6 KiB

gimple-streamer-in.cH A D05-Mar-20169.4 KiB

gimple-streamer-out.cH A D05-Mar-20167.8 KiB

gimple-streamer.hH A D05-Mar-20161.3 KiB

gimple-walk.cH A D05-Mar-201625 KiB

gimple-walk.hH A D05-Mar-20164.1 KiB

gimple.cH A D06-Jun-201682.3 KiB

gimple.defH A D05-Mar-201615.4 KiB

gimple.hH A D05-Mar-2016135.5 KiB

gimplify-me.cH A D05-Mar-201610.2 KiB

gimplify-me.hH A D05-Mar-20161.5 KiB

gimplify.cH A D06-Jun-2016287.4 KiB

gimplify.hH A D05-Mar-20164.1 KiB

ginclude/H05-Mar-201616

glimits.hH A D05-Mar-20163.6 KiB

go/H06-Jun-201618

godump.cH A D05-Mar-201636.9 KiB

graph.cH A D05-Mar-20169.4 KiB

graph.hH A D05-Mar-2016951

graphds.cH A D05-Mar-201610.4 KiB

graphds.hH A D05-Mar-20162.1 KiB

graphite-blocking.cH A D05-Mar-20167 KiB

graphite-dependences.cH A D05-Mar-201618 KiB

graphite-interchange.cH A D05-Mar-201619.9 KiB

graphite-isl-ast-to-gimple.cH A D05-Mar-201633.2 KiB

graphite-isl-ast-to-gimple.hH A D05-Mar-2016917

graphite-optimize-isl.cH A D05-Mar-201620.2 KiB

graphite-poly.cH A D05-Mar-201627.1 KiB

graphite-poly.hH A D05-Mar-201637 KiB

graphite-scop-detection.cH A D05-Mar-201640.1 KiB

graphite-scop-detection.hH A D05-Mar-20161.1 KiB

graphite-sese-to-poly.cH A D05-Mar-201680.7 KiB

graphite-sese-to-poly.hH A D05-Mar-2016963

graphite.cH A D05-Mar-201610 KiB

gsstruct.defH A D05-Mar-20162.3 KiB

gstab.hH A D05-Mar-2016977

gsyms.hH A D05-Mar-20161.9 KiB

gsyslimits.hH A D22-Nov-2012330

gtm-builtins.defH A D05-Mar-20169.7 KiB

haifa-sched.cH A D06-Jun-2016262.3 KiB

hard-reg-set.hH A D05-Mar-201623.7 KiB

hash-map.hH A D05-Mar-20167.8 KiB

hash-set.hH A D05-Mar-20165.9 KiB

hash-table.cH A D05-Mar-20163.4 KiB

hash-table.hH A D05-Mar-201650.3 KiB

highlev-plugin-common.hH A D05-Mar-20161.1 KiB

hooks.cH A D05-Mar-201610.2 KiB

hooks.hH A D05-Mar-20165 KiB

host-default.cH A D05-Mar-2016902

hosthooks-def.hH A D05-Mar-20161.8 KiB

hosthooks.hH A D05-Mar-20161.8 KiB

hw-doloop.cH A D05-Mar-201618 KiB

hw-doloop.hH A D05-Mar-20165.5 KiB

hwint.cH A D05-Mar-20164.1 KiB

hwint.hH A D05-Mar-20168 KiB

ifcvt.cH A D06-Jun-2016131.5 KiB

ifcvt.hH A D05-Mar-20161.6 KiB

inchash.cH A D05-Mar-20162.3 KiB

inchash.hH A D05-Mar-20163 KiB

incpath.cH A D05-Mar-201614.8 KiB

incpath.hH A D05-Mar-20161.5 KiB

init-regs.cH A D05-Mar-20165.1 KiB

input.cH A D05-Mar-201626.3 KiB

input.hH A D05-Mar-20163 KiB

insn-addr.hH A D05-Mar-20161.8 KiB

insn-notes.defH A D05-Mar-20163.2 KiB

internal-fn.cH A D05-Mar-201659.5 KiB

internal-fn.defH A D05-Mar-20163 KiB

internal-fn.hH A D05-Mar-20161.6 KiB

intl.cH A D05-Mar-20163.5 KiB

intl.hH A D05-Mar-20161.8 KiB

ipa-chkp.cH A D05-Mar-201626.1 KiB

ipa-chkp.hH A D05-Mar-20161.1 KiB

ipa-comdats.cH A D05-Mar-201611.9 KiB

ipa-cp.cH A D06-Jun-2016132.2 KiB

ipa-devirt.cH A D06-Jun-2016115.8 KiB

ipa-icf-gimple.cH A D05-Mar-201628.6 KiB

ipa-icf-gimple.hH A D05-Mar-20169.9 KiB

ipa-icf.cH A D06-Jun-201693.9 KiB

ipa-icf.hH A D05-Mar-201618.9 KiB

ipa-inline-analysis.cH A D06-Jun-2016129.9 KiB

ipa-inline-transform.cH A D05-Mar-201618.1 KiB

ipa-inline.cH A D05-Mar-201689.2 KiB

ipa-inline.hH A D06-Jun-201611.6 KiB

ipa-polymorphic-call.cH A D06-Jun-201676.8 KiB

ipa-profile.cH A D05-Mar-201623.1 KiB

ipa-prop.cH A D06-Jun-2016154 KiB

ipa-prop.hH A D05-Mar-201626.6 KiB

ipa-pure-const.cH A D05-Mar-201654.9 KiB

ipa-ref.cH A D05-Mar-20163.2 KiB

ipa-ref.hH A D05-Mar-20163.3 KiB

ipa-reference.cH A D05-Mar-201637.9 KiB

ipa-reference.hH A D05-Mar-20161 KiB

ipa-split.cH A D06-Jun-201663.5 KiB

ipa-utils.cH A D05-Mar-201618.4 KiB

ipa-utils.hH A D05-Mar-20166.6 KiB

ipa-visibility.cH A D05-Mar-201626.2 KiB

ipa.cH A D05-Mar-201642.1 KiB

ira-build.cH A D05-Mar-2016102 KiB

ira-color.cH A D05-Mar-2016153 KiB

ira-conflicts.cH A D05-Mar-201625.8 KiB

ira-costs.cH A D05-Mar-201672.8 KiB

ira-emit.cH A D05-Mar-201641.2 KiB

ira-int.hH A D05-Mar-201654.2 KiB

ira-lives.cH A D05-Mar-201646.2 KiB

ira.cH A D06-Jun-2016171.6 KiB

ira.hH A D05-Mar-20168.2 KiB

is-a.hH A D05-Mar-20166 KiB

java/H06-Jun-201647

jit/H06-Jun-201628

jump.cH A D05-Mar-201650.9 KiB

langhooks-def.hH A D05-Mar-201612.8 KiB

langhooks.cH A D05-Mar-201618.4 KiB

langhooks.hH A D05-Mar-201620.2 KiB

LANGUAGESH A D05-Mar-20162.2 KiB

lcm.cH A D05-Mar-201628 KiB

lcm.hH A D05-Mar-20161.3 KiB

libfuncs.hH A D05-Mar-20163.4 KiB

limitx.hH A D05-Mar-20161.4 KiB

limity.hH A D22-Nov-2012270

lists.cH A D05-Mar-20166.1 KiB

lock-and-run.shH A D05-Mar-2016773

loop-doloop.cH A D05-Mar-201623.4 KiB

loop-init.cH A D05-Mar-201615.9 KiB

loop-invariant.cH A D05-Mar-201653.2 KiB

loop-iv.cH A D05-Mar-201678.7 KiB

loop-unroll.cH A D05-Mar-201659.8 KiB

loop-unroll.hH A D05-Mar-2016893

lower-subreg.cH A D05-Mar-201648 KiB

lower-subreg.hH A D05-Mar-20162 KiB

lra-assigns.cH A D05-Mar-201658.9 KiB

lra-coalesce.cH A D05-Mar-201612.5 KiB

lra-constraints.cH A D06-Jun-2016198.7 KiB

lra-eliminations.cH A D05-Mar-201646.8 KiB

lra-int.hH A D05-Mar-201618.4 KiB

lra-lives.cH A D05-Mar-201643.3 KiB

lra-remat.cH A D06-Jun-201641.2 KiB

lra-spills.cH A D05-Mar-201623.9 KiB

lra.cH A D06-Jun-201672.5 KiB

lra.hH A D05-Mar-20161.4 KiB

lto/H06-Jun-201617

lto-cgraph.cH A D05-Mar-201668.5 KiB

lto-compress.cH A D05-Mar-20169.3 KiB

lto-compress.hH A D05-Mar-20161.5 KiB

lto-opts.cH A D05-Mar-20168.1 KiB

lto-section-in.cH A D05-Mar-201612.8 KiB

lto-section-names.hH A D05-Mar-20161.6 KiB

lto-section-out.cH A D05-Mar-201610.4 KiB

lto-streamer-in.cH A D05-Mar-201646.4 KiB

lto-streamer-out.cH A D05-Mar-201683.9 KiB

lto-streamer.cH A D05-Mar-201611.5 KiB

lto-streamer.hH A D06-Jun-201637.9 KiB

lto-wrapper.cH A D05-Mar-201637.5 KiB

machmode.defH A D05-Mar-20169.5 KiB

machmode.hH A D05-Mar-201612.4 KiB

main.cH A D05-Mar-20161.2 KiB

Makefile.inH A D05-Mar-2016143.2 KiB

match.pdH A D06-Jun-201634 KiB

mcf.cH A D05-Mar-201639.4 KiB

mkconfig.shH A D05-Mar-20163.8 KiB

mode-classes.defH A D05-Mar-20161.9 KiB

mode-switching.cH A D05-Mar-201626 KiB

modulo-sched.cH A D06-Jun-2016100.6 KiB

objc/H06-Jun-201621

objcp/H06-Jun-20169

omega.cH A D05-Mar-2016127.6 KiB

omega.hH A D05-Mar-20169.2 KiB

omp-builtins.defH A D05-Mar-201612.7 KiB

omp-low.cH A D06-Jun-2016413.5 KiB

omp-low.hH A D05-Mar-20161.2 KiB

ONEWSH A D29-Jan-201436.9 KiB

opt-functions.awkH A D05-Mar-201610.2 KiB

opt-gather.awkH A D05-Mar-20161.5 KiB

opt-include.awkH A D05-Mar-20161.1 KiB

opt-read.awkH A D05-Mar-20163.3 KiB

optabs.cH A D06-Jun-2016259.5 KiB

optabs.defH A D05-Mar-201615.9 KiB

optabs.hH A D05-Mar-201620.6 KiB

optc-gen.awkH A D05-Mar-201618.9 KiB

optc-save-gen.awkH A D05-Mar-201623.9 KiB

opth-gen.awkH A D05-Mar-201615.9 KiB

opts-common.cH A D05-Mar-201638.1 KiB

opts-diagnostic.hH A D05-Mar-2016953

opts-global.cH A D05-Mar-201612.4 KiB

opts.cH A D05-Mar-201670.1 KiB

opts.hH A D05-Mar-201614.3 KiB

output.hH A D05-Mar-201624.1 KiB

params.cH A D05-Mar-20165.3 KiB

params.defH A D05-Mar-201643.4 KiB

params.hH A D05-Mar-20168.3 KiB

pass_manager.hH A D05-Mar-20163.6 KiB

passes.cH A D06-Jun-201677.3 KiB

passes.defH A D05-Mar-201617.6 KiB

plugin.cH A D05-Mar-201625.7 KiB

plugin.defH A D05-Mar-20163 KiB

plugin.hH A D05-Mar-20162.3 KiB

po/H06-Jun-201643

postreload-gcse.cH A D05-Mar-201641.5 KiB

postreload.cH A D06-Jun-201670.2 KiB

predict.cH A D05-Mar-201689 KiB

predict.defH A D05-Mar-20167.8 KiB

predict.hH A D05-Mar-20163.8 KiB

prefix.cH A D05-Mar-20168.7 KiB

prefix.hH A D05-Mar-20161.2 KiB

pretty-print.cH A D05-Mar-201629.5 KiB

pretty-print.hH A D05-Mar-201613.7 KiB

print-rtl.cH A D05-Mar-201621.4 KiB

print-rtl.hH A D05-Mar-2016846

print-tree.cH A D05-Mar-201629.1 KiB

print-tree.hH A D05-Mar-20161.7 KiB

profile.cH A D05-Mar-201642.7 KiB

profile.hH A D05-Mar-20161.9 KiB

read-md.cH A D05-Mar-201627.6 KiB

read-md.hH A D05-Mar-20164.6 KiB

read-rtl.cH A D05-Mar-201638.5 KiB

README.PortabilityH A D05-Mar-20166.4 KiB

real.cH A D05-Mar-2016112.3 KiB

real.hH A D05-Mar-201617.9 KiB

realmpfr.cH A D05-Mar-20163 KiB

realmpfr.hH A D05-Mar-20161.2 KiB

recog.cH A D05-Mar-2016111.5 KiB

recog.hH A D05-Mar-201615.8 KiB

ree.cH A D05-Mar-201640.7 KiB

reg-notes.defH A D05-Mar-20169.1 KiB

reg-stack.cH A D05-Mar-201698.2 KiB

regcprop.cH A D05-Mar-201637.3 KiB

regcprop.hH A D05-Mar-2016877

reginfo.cH A D05-Mar-201639.1 KiB

regrename.cH A D05-Mar-201654.8 KiB

regrename.hH A D05-Mar-20163 KiB

regs.hH A D05-Mar-201613.4 KiB

regset.hH A D05-Mar-20164.8 KiB

regstat.cH A D06-Jun-201617.1 KiB

reload.cH A D05-Mar-2016244 KiB

reload.hH A D05-Mar-201617.2 KiB

reload1.cH A D05-Mar-2016296.8 KiB

reorg.cH A D05-Mar-2016127.7 KiB

resource.cH A D05-Mar-201640 KiB

resource.hH A D05-Mar-20161.9 KiB

rtl-chkp.cH A D05-Mar-20167.8 KiB

rtl-chkp.hH A D05-Mar-20161.5 KiB

rtl-error.cH A D05-Mar-20163.4 KiB

rtl-error.hH A D05-Mar-20161 KiB

rtl-iter.hH A D05-Mar-20168.2 KiB

rtl.cH A D05-Mar-201620.6 KiB

rtl.defH A D05-Mar-201658.9 KiB

rtl.hH A D06-Jun-2016124.5 KiB

rtlanal.cH A D06-Jun-2016164.2 KiB

rtlhash.cH A D05-Mar-20162.4 KiB

rtlhash.hH A D05-Mar-2016871

rtlhooks-def.hH A D05-Mar-20161.8 KiB

rtlhooks.cH A D05-Mar-20165.2 KiB

sanitizer.defH A D05-Mar-201624.1 KiB

sanopt.cH A D05-Mar-201620.4 KiB

sbitmap.cH A D05-Mar-201618 KiB

sbitmap.hH A D05-Mar-20168.7 KiB

sched-deps.cH A D06-Jun-2016137.5 KiB

sched-ebb.cH A D05-Mar-201620.1 KiB

sched-int.hH A D06-Jun-201659.5 KiB

sched-rgn.cH A D05-Mar-2016105.8 KiB

sched-vis.cH A D05-Mar-201622.5 KiB

sdbout.cH A D05-Mar-201647.3 KiB

sdbout.hH A D05-Mar-2016892

sel-sched-dump.cH A D05-Mar-201622 KiB

sel-sched-dump.hH A D05-Mar-20166.8 KiB

sel-sched-ir.cH A D06-Jun-2016171.6 KiB

sel-sched-ir.hH A D05-Mar-201647.9 KiB

sel-sched.cH A D06-Jun-2016241.9 KiB

sel-sched.hH A D05-Mar-2016920

sese.cH A D05-Mar-201620.2 KiB

sese.hH A D05-Mar-20169.2 KiB

shrink-wrap.cH A D06-Jun-201631 KiB

shrink-wrap.hH A D05-Mar-20161.7 KiB

signop.hH A D05-Mar-20161.1 KiB

simplify-rtx.cH A D05-Mar-2016180.8 KiB

sparseset.cH A D05-Mar-20165.3 KiB

sparseset.hH A D05-Mar-20166.8 KiB

sreal.cH A D05-Mar-20164.9 KiB

sreal.hH A D05-Mar-20165.8 KiB

ssa-iterators.hH A D05-Mar-201629.1 KiB

stab.defH A D05-Mar-20169 KiB

stack-ptr-mod.cH A D05-Mar-20163.8 KiB

statistics.cH A D05-Mar-20169.8 KiB

statistics.hH A D05-Mar-20162.8 KiB

stmt.cH A D06-Jun-201663.9 KiB

stmt.hH A D05-Mar-20161.8 KiB

stor-layout.cH A D05-Mar-201695.9 KiB

stor-layout.hH A D05-Mar-20165.1 KiB

store-motion.cH A D05-Mar-201635.5 KiB

streamer-hooks.cH A D05-Mar-20161.1 KiB

streamer-hooks.hH A D05-Mar-20163.3 KiB

stringpool.cH A D05-Mar-20167.2 KiB

stringpool.hH A D05-Mar-20161.5 KiB

symbol-summary.hH A D05-Mar-20167.5 KiB

symtab.cH A D05-Mar-201654.3 KiB

sync-builtins.defH A D05-Mar-201627 KiB

system.hH A D05-Mar-201634.5 KiB

target-def.hH A D05-Mar-20163.6 KiB

target-globals.cH A D05-Mar-20164.6 KiB

target-globals.hH A D05-Mar-20163.2 KiB

target-hooks-macros.hH A D05-Mar-20164 KiB

target.defH A D05-Mar-2016260.2 KiB

target.hH A D05-Mar-20166.8 KiB

targhooks.cH A D06-Jun-201647.5 KiB

targhooks.hH A D05-Mar-201610.8 KiB

testsuite/H06-Jun-201640

timevar.cH A D05-Mar-201616.8 KiB

timevar.defH A D05-Mar-201615 KiB

timevar.hH A D05-Mar-20163.9 KiB

tlink.cH A D05-Mar-201620.1 KiB

toplev.cH A D05-Mar-201663.2 KiB

toplev.hH A D05-Mar-20162.9 KiB

tracer.cH A D05-Mar-201611.7 KiB

trans-mem.cH A D05-Mar-2016158.9 KiB

trans-mem.hH A D05-Mar-20161.8 KiB

tree-affine.cH A D05-Mar-201623.6 KiB

tree-affine.hH A D05-Mar-20163.3 KiB

tree-browser.cH A D05-Mar-201621.2 KiB

tree-browser.defH A D05-Mar-20164.7 KiB

tree-call-cdce.cH A D05-Mar-201630.4 KiB

tree-cfg.cH A D06-Jun-2016233.7 KiB

tree-cfg.hH A D05-Mar-20164.7 KiB

tree-cfgcleanup.cH A D05-Mar-201631.3 KiB

tree-cfgcleanup.hH A D05-Mar-2016973

tree-chkp-opt.cH A D05-Mar-201635.2 KiB

tree-chkp.cH A D05-Mar-2016123.2 KiB

tree-chkp.hH A D05-Mar-20162.6 KiB

tree-chrec.cH A D06-Jun-201643.7 KiB

tree-chrec.hH A D05-Mar-20167.1 KiB

tree-complex.cH A D05-Mar-201646 KiB

tree-core.hH A D05-Mar-201653.9 KiB

tree-data-ref.cH A D06-Jun-2016137.9 KiB

tree-data-ref.hH A D05-Mar-201616.9 KiB

tree-dfa.cH A D05-Mar-201625.6 KiB

tree-dfa.hH A D05-Mar-20161.6 KiB

tree-diagnostic.cH A D05-Mar-201611 KiB

tree-diagnostic.hH A D05-Mar-20162.2 KiB

tree-dump.cH A D05-Mar-201619.8 KiB

tree-dump.hH A D05-Mar-20162.8 KiB

tree-eh.cH A D05-Mar-2016130.2 KiB

tree-eh.hH A D05-Mar-20162.2 KiB

tree-emutls.cH A D05-Mar-201623.9 KiB

tree-hasher.hH A D05-Mar-20161.9 KiB

tree-if-conv.cH A D05-Mar-201674.7 KiB

tree-inline.cH A D06-Jun-2016182.5 KiB

tree-inline.hH A D05-Mar-20167.3 KiB

tree-into-ssa.cH A D05-Mar-201697.9 KiB

tree-into-ssa.hH A D05-Mar-20161.9 KiB

tree-iterator.cH A D05-Mar-20167.3 KiB

tree-iterator.hH A D05-Mar-20163.2 KiB

tree-loop-distribution.cH A D05-Mar-201648.4 KiB

tree-nested.cH A D05-Mar-201690.3 KiB

tree-nested.hH A D05-Mar-2016961

tree-nrv.cH A D05-Mar-201611.9 KiB

tree-object-size.cH A D05-Mar-201637.5 KiB

tree-object-size.hH A D05-Mar-2016930

tree-outof-ssa.cH A D05-Mar-201632.4 KiB

tree-outof-ssa.hH A D05-Mar-20162.5 KiB

tree-parloops.cH A D06-Jun-201667.5 KiB

tree-parloops.hH A D05-Mar-2016864

tree-pass.hH A D05-Mar-201629.2 KiB

tree-phinodes.cH A D05-Mar-201615.6 KiB

tree-phinodes.hH A D05-Mar-20162.2 KiB

tree-predcom.cH A D05-Mar-201668.4 KiB

tree-pretty-print.cH A D05-Mar-201695.2 KiB

tree-pretty-print.hH A D05-Mar-20162.2 KiB

tree-profile.cH A D05-Mar-201622.1 KiB

tree-scalar-evolution.cH A D06-Jun-2016103.3 KiB

tree-scalar-evolution.hH A D05-Mar-20162.4 KiB

tree-sra.cH A D06-Jun-2016150.9 KiB

tree-ssa-address.cH A D05-Mar-201627.6 KiB

tree-ssa-address.hH A D05-Mar-20161.2 KiB

tree-ssa-alias.cH A D06-Jun-201682.8 KiB

tree-ssa-alias.hH A D05-Mar-20166.5 KiB

tree-ssa-ccp.cH A D05-Mar-201678.4 KiB

tree-ssa-coalesce.cH A D05-Mar-201635.1 KiB

tree-ssa-coalesce.hH A D05-Mar-2016876

tree-ssa-copy.cH A D05-Mar-201618.7 KiB

tree-ssa-copyrename.cH A D05-Mar-201613.3 KiB

tree-ssa-dce.cH A D05-Mar-201652 KiB

tree-ssa-dom.cH A D06-Jun-201698.8 KiB

tree-ssa-dom.hH A D05-Mar-2016975

tree-ssa-dse.cH A D05-Mar-201612.4 KiB

tree-ssa-forwprop.cH A D06-Jun-201674.8 KiB

tree-ssa-ifcombine.cH A D05-Mar-201625 KiB

tree-ssa-live.cH A D05-Mar-201641.2 KiB

tree-ssa-live.hH A D05-Mar-20169.3 KiB

tree-ssa-loop-ch.cH A D05-Mar-20168.7 KiB

tree-ssa-loop-im.cH A D05-Mar-201672.9 KiB

tree-ssa-loop-ivcanon.cH A D06-Jun-201646.8 KiB

tree-ssa-loop-ivopts.cH A D05-Mar-2016187.9 KiB

tree-ssa-loop-ivopts.hH A D05-Mar-20161.4 KiB

tree-ssa-loop-manip.cH A D05-Mar-201642.9 KiB

tree-ssa-loop-manip.hH A D05-Mar-20161.9 KiB

tree-ssa-loop-niter.cH A D06-Jun-2016113.4 KiB

tree-ssa-loop-niter.hH A D05-Mar-20162.2 KiB

tree-ssa-loop-prefetch.cH A D05-Mar-201662.7 KiB

tree-ssa-loop-unswitch.cH A D05-Mar-201611.7 KiB

tree-ssa-loop.cH A D06-Jun-201616.4 KiB

tree-ssa-loop.hH A D05-Mar-20162.7 KiB

tree-ssa-math-opts.cH A D06-Jun-2016100.6 KiB

tree-ssa-operands.cH A D05-Mar-201636.1 KiB

tree-ssa-operands.hH A D05-Mar-20163.9 KiB

tree-ssa-phiopt.cH A D05-Mar-201666.9 KiB

tree-ssa-phiprop.cH A D05-Mar-201612.8 KiB

tree-ssa-pre.cH A D06-Jun-2016142 KiB

tree-ssa-propagate.cH A D05-Mar-201644 KiB

tree-ssa-propagate.hH A D05-Mar-20163.3 KiB

tree-ssa-reassoc.cH A D06-Jun-2016147.7 KiB

tree-ssa-sccvn.cH A D06-Jun-2016127.2 KiB

tree-ssa-sccvn.hH A D06-Jun-20167.8 KiB

tree-ssa-sink.cH A D05-Mar-201617.9 KiB

tree-ssa-strlen.cH A D05-Mar-201663.8 KiB

tree-ssa-structalias.cH A D05-Mar-2016210.5 KiB

tree-ssa-tail-merge.cH A D05-Mar-201644.7 KiB

tree-ssa-ter.cH A D05-Mar-201625.8 KiB

tree-ssa-ter.hH A D05-Mar-2016916

tree-ssa-threadedge.cH A D05-Mar-201648.8 KiB

tree-ssa-threadedge.hH A D05-Mar-20161.4 KiB

tree-ssa-threadupdate.cH A D06-Jun-201692.7 KiB

tree-ssa-threadupdate.hH A D05-Mar-20161.4 KiB

tree-ssa-uncprop.cH A D05-Mar-201617 KiB

tree-ssa-uninit.cH A D06-Jun-201669.6 KiB

tree-ssa.cH A D06-Jun-201646 KiB

tree-ssa.hH A D05-Mar-20162.6 KiB

tree-ssanames.cH A D05-Mar-201618.9 KiB

tree-ssanames.hH A D05-Mar-20165.2 KiB

tree-stdarg.cH A D05-Mar-201627.6 KiB

tree-stdarg.hH A D05-Mar-20161.1 KiB

tree-streamer-in.cH A D05-Mar-201637.9 KiB

tree-streamer-out.cH A D05-Mar-201634.4 KiB

tree-streamer.cH A D05-Mar-201611.5 KiB

tree-streamer.hH A D05-Mar-20165 KiB

tree-switch-conversion.cH A D05-Mar-201645.9 KiB

tree-tailcall.cH A D05-Mar-201632.4 KiB

tree-vect-data-refs.cH A D06-Jun-2016191.3 KiB

tree-vect-generic.cH A D05-Mar-201655.7 KiB

tree-vect-loop-manip.cH A D05-Mar-201684.2 KiB

tree-vect-loop.cH A D06-Jun-2016206.3 KiB

tree-vect-patterns.cH A D05-Mar-2016110 KiB

tree-vect-slp.cH A D05-Mar-2016103.7 KiB

tree-vect-stmts.cH A D05-Mar-2016253.4 KiB

tree-vectorizer.cH A D05-Mar-201621.4 KiB

tree-vectorizer.hH A D05-Mar-201639.7 KiB

tree-vrp.cH A D06-Jun-2016303.3 KiB

tree.cH A D06-Jun-2016340.4 KiB

tree.defH A D05-Mar-201664.3 KiB

tree.hH A D05-Mar-2016197.2 KiB

treestruct.defH A D05-Mar-20162.7 KiB

tsan.cH A D05-Mar-201631.9 KiB

tsan.hH A D05-Mar-2016876

tsystem.hH A D05-Mar-20163.8 KiB

typeclass.hH A D05-Mar-20161.5 KiB

typed-splay-tree.hH A D05-Mar-20163.9 KiB

ubsan.cH A D06-Jun-201663.1 KiB

ubsan.hH A D05-Mar-20162.1 KiB

valtrack.cH A D05-Mar-201621 KiB

valtrack.hH A D05-Mar-20164.9 KiB

value-prof.cH A D05-Mar-201660.9 KiB

value-prof.hH A D05-Mar-20165 KiB

var-tracking.cH A D06-Jun-2016272.3 KiB

varasm.cH A D06-Jun-2016220.8 KiB

varasm.hH A D05-Mar-20162.8 KiB

varpool.cH A D05-Mar-201622.6 KiB

vec.cH A D05-Mar-20167.4 KiB

vec.hH A D05-Mar-201648 KiB

version.cH A D05-Mar-20161.4 KiB

version.hH A D22-Nov-2012184

vmsdbg.hH A D05-Mar-20166.4 KiB

vmsdbgout.cH A D05-Mar-201654.1 KiB

vtable-verify.cH A D05-Mar-201627.8 KiB

vtable-verify.hH A D05-Mar-20166.6 KiB

web.cH A D05-Mar-201612.9 KiB

wide-int-print.ccH A D05-Mar-20163.6 KiB

wide-int-print.hH A D05-Mar-20161.4 KiB

wide-int.ccH A D06-Jun-201658.4 KiB

wide-int.hH A D06-Jun-2016101.3 KiB

xcoff.hH A D05-Mar-20161.1 KiB

xcoffout.cH A D05-Mar-201613.6 KiB

xcoffout.hH A D05-Mar-20166.5 KiB

README.Portability

1Copyright (C) 2000-2015 Free Software Foundation, Inc.
2
3This file is intended to contain a few notes about writing C code
4within GCC so that it compiles without error on the full range of
5compilers GCC needs to be able to compile on.
6
7The problem is that many ISO-standard constructs are not accepted by
8either old or buggy compilers, and we keep getting bitten by them.
9This knowledge until now has been sparsely spread around, so I
10thought I'd collect it in one useful place.  Please add and correct
11any problems as you come across them.
12
13I'm going to start from a base of the ISO C90 standard, since that is
14probably what most people code to naturally.  Obviously using
15constructs introduced after that is not a good idea.
16
17For the complete coding style conventions used in GCC, please read
18http://gcc.gnu.org/codingconventions.html
19
20
21String literals
22---------------
23
24Irix6 "cc -n32" and OSF4 "cc" have problems with constant string
25initializers with parens around it, e.g.
26
27const char string[] = ("A string");
28
29This is unfortunate since this is what the GNU gettext macro N_
30produces.  You need to find a different way to code it.
31
32Some compilers like MSVC++ have fairly low limits on the maximum
33length of a string literal; 509 is the lowest we've come across.  You
34may need to break up a long printf statement into many smaller ones.
35
36
37Empty macro arguments
38---------------------
39
40ISO C (6.8.3 in the 1990 standard) specifies the following:
41
42If (before argument substitution) any argument consists of no
43preprocessing tokens, the behavior is undefined.
44
45This was relaxed by ISO C99, but some older compilers emit an error,
46so code like
47
48#define foo(x, y) x y
49foo (bar, )
50
51needs to be coded in some other way.
52
53
54Avoid unnecessary test before free
55----------------------------------
56
57Since SunOS 4 stopped being a reasonable portability target,
58(which happened around 2007) there has been no need to guard
59against "free (NULL)".  Thus, any guard like the following
60constitutes a redundant test:
61
62  if (P)
63    free (P);
64
65It is better to avoid the test.[*]
66Instead, simply free P, regardless of whether it is NULL.
67
68[*] However, if your profiling exposes a test like this in a
69performance-critical loop, say where P is nearly always NULL, and
70the cost of calling free on a NULL pointer would be prohibitively
71high, consider using __builtin_expect, e.g., like this:
72
73  if (__builtin_expect (ptr != NULL, 0))
74    free (ptr);
75
76
77
78Trigraphs
79---------
80
81You weren't going to use them anyway, but some otherwise ISO C
82compliant compilers do not accept trigraphs.
83
84
85Suffixes on Integer Constants
86-----------------------------
87
88You should never use a 'l' suffix on integer constants ('L' is fine),
89since it can easily be confused with the number '1'.
90
91
92			Common Coding Pitfalls
93			======================
94
95errno
96-----
97
98errno might be declared as a macro.
99
100
101Implicit int
102------------
103
104In C, the 'int' keyword can often be omitted from type declarations.
105For instance, you can write
106
107  unsigned variable;
108
109as shorthand for
110
111  unsigned int variable;
112
113There are several places where this can cause trouble.  First, suppose
114'variable' is a long; then you might think
115
116  (unsigned) variable
117
118would convert it to unsigned long.  It does not.  It converts to
119unsigned int.  This mostly causes problems on 64-bit platforms, where
120long and int are not the same size.
121
122Second, if you write a function definition with no return type at
123all:
124
125  operate (int a, int b)
126  {
127    ...
128  }
129
130that function is expected to return int, *not* void.  GCC will warn
131about this.
132
133Implicit function declarations always have return type int.  So if you
134correct the above definition to
135
136  void
137  operate (int a, int b)
138  ...
139
140but operate() is called above its definition, you will get an error
141about a "type mismatch with previous implicit declaration".  The cure
142is to prototype all functions at the top of the file, or in an
143appropriate header.
144
145Char vs unsigned char vs int
146----------------------------
147
148In C, unqualified 'char' may be either signed or unsigned; it is the
149implementation's choice.  When you are processing 7-bit ASCII, it does
150not matter.  But when your program must handle arbitrary binary data,
151or fully 8-bit character sets, you have a problem.  The most obvious
152issue is if you have a look-up table indexed by characters.
153
154For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
155WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
156true.  But if you read '\341' from a file and store it in a plain
157char, isalpha(c) may look up character 225, or it may look up
158character -31.  And the ctype table has no entry at offset -31, so
159your program will crash.  (If you're lucky.)
160
161It is wise to use unsigned char everywhere you possibly can.  This
162avoids all these problems.  Unfortunately, the routines in <string.h>
163take plain char arguments, so you have to remember to cast them back
164and forth - or avoid the use of strxxx() functions, which is probably
165a good idea anyway.
166
167Another common mistake is to use either char or unsigned char to
168receive the result of getc() or related stdio functions.  They may
169return EOF, which is outside the range of values representable by
170char.  If you use char, some legal character value may be confused
171with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
172The correct choice is int.
173
174A more subtle version of the same mistake might look like this:
175
176  unsigned char pushback[NPUSHBACK];
177  int pbidx;
178  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
179  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
180  ...
181  unget(EOF);
182
183which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
184WITH UMLAUT.
185
186
187Other common pitfalls
188---------------------
189
190o Expecting 'plain' char to be either sign or unsigned extending.
191
192o Shifting an item by a negative amount or by greater than or equal to
193  the number of bits in a type (expecting shifts by 32 to be sensible
194  has caused quite a number of bugs at least in the early days).
195
196o Expecting ints shifted right to be sign extended.
197
198o Modifying the same value twice within one sequence point.
199
200o Host vs. target floating point representation, including emitting NaNs
201  and Infinities in a form that the assembler handles.
202
203o qsort being an unstable sort function (unstable in the sense that
204  multiple items that sort the same may be sorted in different orders
205  by different qsort functions).
206
207o Passing incorrect types to fprintf and friends.
208
209o Adding a function declaration for a module declared in another file to
210  a .c file instead of to a .h file.
211