• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..07-May-2022-

ada/H30-Oct-2014-1,315,216756,210

c/H30-Oct-2014-42,15330,611

c-family/H30-Oct-2014-39,50228,474

common/H30-Oct-2014-5,0103,156

config/H03-May-2022-1,007,319793,212

cp/H03-May-2022-264,283186,267

doc/H03-May-2022-306,183258,948

fortran/H30-Oct-2014-251,767187,928

ginclude/H30-Oct-2014-2,1861,394

go/H30-Oct-2014-71,06951,613

java/H30-Oct-2014-54,96541,326

lto/H30-Oct-2014-11,9028,540

objc/H30-Oct-2014-26,23017,174

objcp/H30-Oct-2014-1,061693

po/H03-May-2022-1,058,697840,692

testsuite/H30-Oct-2014-2,000,8941,371,068

ABOUT-GCC-NLSH A D02-Jan-20142.7 KiB5746

BASE-VERH A D16-Jul-20146 21

COPYINGH A D25-Jun-200517.6 KiB341281

COPYING3H A D17-Jul-200734.3 KiB675553

ChangeLogH A D30-Oct-2014322.4 KiB9,4157,178

ChangeLog-1997H A D21-Apr-2009140.7 KiB3,9772,819

ChangeLog-1998H A D21-Apr-2009638.7 KiB17,62412,870

ChangeLog-1999H A D21-Apr-2009783.5 KiB21,79416,075

ChangeLog-2000H A D21-Apr-20091.1 MiB32,13224,529

ChangeLog-2001H A D21-Apr-20091.2 MiB33,65325,666

ChangeLog-2002H A D30-Dec-20091.2 MiB35,99627,668

ChangeLog-2003H A D21-Apr-20091.3 MiB37,87029,192

ChangeLog-2004H A D21-Apr-20091.8 MiB47,88838,139

ChangeLog-2005H A D30-Dec-20091.3 MiB35,91628,555

ChangeLog-2006H A D30-Dec-2009874.6 KiB23,81819,138

ChangeLog-2007H A D26-Mar-20101.3 MiB34,17928,182

ChangeLog-2008H A D30-Sep-20091.1 MiB28,97123,621

ChangeLog-2009H A D23-Oct-20131.3 MiB34,88428,682

ChangeLog-2010H A D07-Feb-20111.5 MiB40,86432,903

ChangeLog-2011H A D23-Oct-20131.5 MiB40,04232,487

ChangeLog-2012H A D23-Oct-20131.3 MiB35,42228,901

ChangeLog-2013H A D06-Jan-20141.5 MiB40,48734,255

ChangeLog.dataflowH A D10-Jan-2013195.9 KiB4,4894,044

ChangeLog.graphiteH A D08-Jul-2011327 KiB9,1297,115

ChangeLog.ptrH A D10-Jan-201320.5 KiB545447

ChangeLog.tree-ssaH A D10-Jan-2013742.6 KiB19,34616,028

ChangeLog.tuplesH A D10-Jan-2013304.1 KiB8,2397,086

DATESTAMPH A D30-Oct-20149 21

FSFChangeLogH A D10-Jan-2013104.8 KiB2,7061,955

FSFChangeLog.10H A D10-Jan-2013381.5 KiB10,1187,325

FSFChangeLog.11H A D10-Jan-2013550 KiB14,49410,558

LANGUAGESH A D02-Jan-20142.2 KiB6542

Makefile.inH A D16-Oct-2014138.9 KiB3,8472,537

ONEWSH A D10-Jan-201336.9 KiB993711

README.PortabilityH A D30-Jan-20146.4 KiB211142

acinclude.m4H A D02-Jan-201418.7 KiB573548

aclocal.m4H A D25-Sep-20135 KiB125114

addresses.hH A D02-Jan-20142.8 KiB8550

alias.cH A D02-Jan-201492.3 KiB3,1211,842

alias.hH A D02-Jan-20142.3 KiB5420

alloc-pool.cH A D02-Jan-201412 KiB421272

alloc-pool.hH A D02-Jan-20142 KiB6734

asan.cH A D24-Oct-201488.8 KiB2,8752,019

asan.hH A D02-Jan-20142.7 KiB8033

attribs.cH A D02-Jan-201420 KiB689465

attribs.hH A D02-Jan-20141.6 KiB419

auto-inc-dec.cH A D02-Jan-201442.9 KiB1,5461,012

basic-block.hH A D02-Jan-201432.8 KiB1,007604

bb-reorder.cH A D23-Mar-201481.4 KiB2,7681,738

bb-reorder.hH A D02-Jan-20141.3 KiB4114

bitmap.cH A D03-May-202251.9 KiB2,2261,729

bitmap.hH A D02-Jan-201423.9 KiB716348

bt-load.cH A D02-Jan-201448.6 KiB1,6191,166

builtin-attrs.defH A D02-Jan-201412.1 KiB283249

builtin-types.defH A D07-Feb-201429.1 KiB592545

builtins.cH A D18-Mar-2014435.8 KiB14,44410,055

builtins.defH A D07-Feb-201472.3 KiB873814

builtins.hH A D02-Jan-20141.9 KiB5014

caller-save.cH A D02-Jan-201445 KiB1,447986

calls.cH A D20-Mar-2014152.7 KiB4,7882,999

calls.hH A D25-Feb-20141.2 KiB3210

cfg-flags.defH A D02-Jan-20146.5 KiB187137

cfg.cH A D02-Jan-201429.8 KiB1,201862

cfganal.cH A D02-Jan-201442.7 KiB1,553962

cfgbuild.cH A D02-Jan-201418.1 KiB646419

cfgcleanup.cH A D16-Oct-201489.6 KiB3,1732,072

cfgexpand.cH A D22-Apr-2014171.7 KiB5,9724,169

cfgexpand.hH A D02-Jan-2014925 275

cfghooks.cH A D14-Mar-201439 KiB1,455995

cfghooks.hH A D02-Jan-20148.8 KiB224103

cfgloop.cH A D02-Jan-201447.3 KiB1,9221,330

cfgloop.hH A D02-Jan-201421.5 KiB764438

cfgloopanal.cH A D02-Jan-201413.1 KiB520341

cfgloopmanip.cH A D24-Jan-201454.4 KiB1,7871,141

cfgrtl.cH A D02-Jan-2014137.9 KiB5,1083,521

cgraph.cH A D03-May-202291 KiB3,1842,386

cgraph.hH A D12-Sep-201451.1 KiB1,545938

cgraphbuild.cH A D02-Jan-201415.2 KiB605464

cgraphclones.cH A D05-Oct-201436.6 KiB1,145793

cgraphunit.cH A D01-Oct-201468.5 KiB2,3361,558

cif-code.defH A D26-Mar-20145 KiB134102

cilk-builtins.defH A D02-Jan-20141.5 KiB3427

cilk-common.cH A D14-Feb-201417.9 KiB484279

cilk.hH A D24-Jan-20144.5 KiB10562

cilkplus.defH A D02-Jan-20142.5 KiB6050

collect2-aix.cH A D02-Jan-201411 KiB370235

collect2-aix.hH A D02-Jan-20148.3 KiB303129

collect2.cH A D24-Oct-201486 KiB3,2182,341

collect2.hH A D02-Jan-20141.4 KiB4618

combine-stack-adj.cH A D05-Feb-201419.1 KiB683460

combine.cH A D08-Jul-2014446.5 KiB13,9309,075

common.optH A D07-Apr-201473.8 KiB2,6932,008

compare-elim.cH A D02-Jan-201419.7 KiB693409

conditions.hH A D02-Jan-20144.5 KiB11822

config.buildH A D02-Jan-20143.4 KiB117106

config.gccH A D17-Sep-2014117.9 KiB4,2344,119

config.hostH A D03-May-20228.6 KiB286272

config.inH A D30-Oct-201443.8 KiB2,1121,453

configureH A D10-Oct-2014856.5 KiB29,48524,882

configure.acH A D10-Oct-2014171.7 KiB5,6725,219

context.cH A D02-Jan-20141.2 KiB3913

context.hH A D02-Jan-20141.5 KiB6018

convert.cH A D02-Jan-201432 KiB985660

convert.hH A D02-Jan-20141 KiB319

coretypes.hH A D02-Jan-20146.6 KiB225127

coverage.cH A D21-Mar-201435.5 KiB1,223873

coverage.hH A D02-Jan-20142.2 KiB6120

cppbuiltin.cH A D03-May-20226.1 KiB192130

cppbuiltin.hH A D02-Jan-20141.1 KiB345

cppdefault.cH A D02-Jan-20144 KiB13488

cppdefault.hH A D02-Jan-20142.7 KiB7220

cprop.cH A D02-Jan-201455.3 KiB1,9601,173

cse.cH A D09-Sep-2014228.2 KiB7,6914,739

cselib.cH A D25-Mar-201477 KiB2,8851,973

cselib.hH A D02-Jan-20144 KiB12372

cstamp-h.inH A D30-Oct-201410 21

data-streamer-in.cH A D02-Jan-20144.5 KiB193121

data-streamer-out.cH A D02-Jan-20148 KiB307210

data-streamer.cH A D02-Jan-20142.7 KiB11974

data-streamer.hH A D02-Jan-20149.7 KiB322206

dbgcnt.cH A D02-Jan-20143.6 KiB152100

dbgcnt.defH A D02-Jan-20145.7 KiB192160

dbgcnt.hH A D02-Jan-20141.1 KiB4013

dbxout.cH A D02-Jan-2014114 KiB3,8562,492

dbxout.hH A D02-Jan-20142.1 KiB6233

dce.cH A D02-Jan-201432.5 KiB1,259831

dce.hH A D02-Jan-2014877 286

ddg.cH A D02-Jan-201433.9 KiB1,273911

ddg.hH A D02-Jan-20145.5 KiB19084

debug.cH A D02-Jan-20143.7 KiB139103

debug.hH A D02-Jan-20147.7 KiB19671

defaults.hH A D03-May-202240.5 KiB1,394858

df-core.cH A D17-Jan-201470 KiB2,5431,521

df-problems.cH A D18-Mar-2014130 KiB4,5133,102

df-scan.cH A D02-Jan-2014125.3 KiB4,5863,313

df.hH A D17-Jan-201444 KiB1,154601

dfp.cH A D02-Jan-201417.9 KiB745535

dfp.hH A D02-Jan-20142.3 KiB5022

diagnostic-color.cH A D02-Jan-201410.9 KiB302154

diagnostic-color.hH A D02-Jan-20142.3 KiB6717

diagnostic-core.hH A D02-Jan-20143.5 KiB9049

diagnostic.cH A D23-Jan-201435.5 KiB1,202862

diagnostic.defH A D02-Jan-20142.2 KiB4840

diagnostic.hH A D23-Jan-201410.7 KiB300119

dojump.cH A D27-Mar-201436.2 KiB1,221901

dominance.cH A D02-Jan-201443.4 KiB1,537935

domwalk.cH A D02-Jan-20146.9 KiB22178

domwalk.hH A D02-Jan-20141.8 KiB5313

double-int.cH A D28-May-201439.3 KiB1,5731,091

double-int.hH A D02-Jan-201412.3 KiB439248

dse.cH A D11-Mar-2014108.6 KiB3,8042,431

dumpfile.cH A D02-Jan-201424.7 KiB938690

dumpfile.hH A D02-Jan-20148.7 KiB241142

dwarf2asm.cH A D02-Jan-201426 KiB1,026760

dwarf2asm.hH A D02-Jan-20142.8 KiB8948

dwarf2cfi.cH A D03-May-202292.5 KiB3,4342,261

dwarf2out.cH A D03-May-2022732.5 KiB24,38417,708

dwarf2out.hH A D02-Jan-20149.1 KiB278183

emit-rtl.cH A D09-Sep-2014157.3 KiB6,0484,050

emit-rtl.hH A D15-Aug-20143.6 KiB12357

errors.cH A D02-Jan-20143.3 KiB13468

errors.hH A D02-Jan-20141.6 KiB4110

et-forest.cH A D02-Jan-201414.8 KiB774544

et-forest.hH A D02-Jan-20142.6 KiB8629

except.cH A D02-Jan-201491.3 KiB3,4232,401

except.hH A D02-Jan-201412 KiB336157

exec-tool.inH A D02-Jan-20143.1 KiB10971

explow.cH A D04-Apr-201456.3 KiB1,9551,205

expmed.cH A D30-Jun-2014186.1 KiB5,8854,137

expmed.hH A D27-Jan-201418.8 KiB669374

expr.cH A D01-Sep-2014343.8 KiB11,2927,826

expr.hH A D24-Mar-201430.1 KiB797350

file-find.cH A D02-Jan-20144.2 KiB194131

file-find.hH A D02-Jan-20141.6 KiB4719

final.cH A D18-Feb-2014122.8 KiB4,7233,294

fixed-value.cH A D02-Jan-201429.3 KiB1,116881

fixed-value.hH A D02-Jan-20144.2 KiB11752

flag-types.hH A D16-Oct-20148 KiB235118

flags.hH A D02-Jan-20143.2 KiB10248

fold-const.cH A D28-May-2014538.8 KiB17,13412,451

fold-const.hH A D02-Jan-20148.4 KiB173133

fp-test.cH A D02-Jan-20145.3 KiB252187

function.cH A D10-Jul-2014213.7 KiB7,2704,850

function.hH A D07-Feb-201430.2 KiB850318

fwprop.cH A D02-Jan-201446.3 KiB1,5901,005

gcc-ar.cH A D02-Jan-20145.6 KiB200114

gcc-plugin.hH A D02-Jan-20145 KiB16774

gcc-symtab.hH A D02-Jan-2014941 294

gcc.cH A D03-May-2022244 KiB8,7205,994

gcc.hH A D02-Jan-20141.8 KiB5920

gcov-dump.cH A D02-Jan-201413.7 KiB531448

gcov-io.cH A D03-Feb-201430.9 KiB1,009685

gcov-io.hH A D08-Jan-201417.7 KiB432151

gcov-iov.cH A D02-Jan-20142.3 KiB7839

gcov.cH A D02-Jan-201465 KiB2,5131,809

gcse.cH A D04-Apr-2014124.1 KiB4,2952,502

gcse.hH A D02-Jan-20141.4 KiB4313

gdbasan.inH A D09-Jan-2014214 86

gdbhooks.pyH A D02-Jan-201415.9 KiB480340

gdbinit.inH A D04-Feb-20144.8 KiB238189

gen-pass-instances.awkH A D02-Jan-20142 KiB6729

genattr-common.cH A D02-Jan-20142.6 KiB11677

genattr.cH A D02-Jan-201413.4 KiB374295

genattrtab.cH A D02-Jan-2014141 KiB5,3323,877

genautomata.cH A D22-Mar-2014295.3 KiB9,6907,387

gencheck.cH A D02-Jan-20141.9 KiB8045

genchecksum.cH A D02-Jan-20142.9 KiB12172

gencodes.cH A D02-Jan-20142.4 KiB9855

genconditions.cH A D02-Jan-20147 KiB257186

genconfig.cH A D02-Jan-20149.2 KiB365237

genconstants.cH A D02-Jan-20143 KiB10351

genemit.cH A D02-Jan-201423.2 KiB864646

genenums.cH A D02-Jan-20141.9 KiB6837

genextract.cH A D02-Jan-201412.2 KiB492356

genflags.cH A D02-Jan-20147.1 KiB300201

gengenrtl.cH A D02-Jan-20146.7 KiB297183

gengtype-lex.cH A D30-Oct-201496 KiB2,8982,066

gengtype-lex.lH A D02-Jan-20145 KiB221167

gengtype-parse.cH A D02-Jan-201426.7 KiB1,127735

gengtype-state.cH A D02-Jan-201472.5 KiB2,7592,226

gengtype.cH A D02-Jan-2014162.7 KiB5,8054,412

gengtype.hH A D02-Jan-201417.6 KiB528269

genhooks.cH A D02-Jan-201410.4 KiB350257

genmddeps.cH A D02-Jan-20141.8 KiB6937

genmddump.cH A D02-Jan-20141.8 KiB6630

genmodes.cH A D02-Jan-201437.2 KiB1,4861,132

genmultilibH A D02-Jan-201417.2 KiB539286

genopinit.cH A D02-Jan-201414.7 KiB527402

genoutput.cH A D02-Jan-201433.7 KiB1,295915

genpeep.cH A D02-Jan-201410.4 KiB415297

genpreds.cH A D02-Jan-201437.8 KiB1,4091,018

genrecog.cH A D02-Jan-201470.7 KiB2,6951,879

gensupport.cH A D02-Jan-201475.7 KiB2,9822,178

gensupport.hH A D02-Jan-20143.6 KiB11450

ggc-common.cH A D02-Jan-201433.4 KiB1,172819

ggc-internal.hH A D02-Jan-20143.9 KiB12032

ggc-none.cH A D02-Jan-20141.6 KiB6633

ggc-page.cH A D02-Jan-201469.6 KiB2,4991,572

ggc.hH A D07-Feb-20149.5 KiB288142

gimple-builder.cH A D02-Jan-20143.5 KiB12567

gimple-builder.hH A D27-Jan-20141.4 KiB3411

gimple-expr.cH A D04-Apr-201426.1 KiB903550

gimple-expr.hH A D04-Apr-20145 KiB181121

gimple-fold.cH A D09-Sep-2014113.3 KiB3,7062,728

gimple-fold.hH A D11-Feb-20142.1 KiB5026

gimple-iterator.cH A D02-Jan-201422.8 KiB883521

gimple-iterator.hH A D02-Jan-20147.6 KiB299190

gimple-low.cH A D10-Jul-201426.1 KiB870516

gimple-low.hH A D02-Jan-2014979 297

gimple-pretty-print.cH A D21-Feb-201468.2 KiB2,5052,042

gimple-pretty-print.hH A D02-Jan-20141.5 KiB4015

gimple-ssa-isolate-paths.cH A D02-Jan-201415.3 KiB462226

gimple-ssa-strength-reduction.cH A D02-May-2014110.5 KiB3,6952,264

gimple-ssa.hH A D02-Jan-20145 KiB17183

gimple-streamer-in.cH A D02-Jan-20148.5 KiB301210

gimple-streamer-out.cH A D02-Jan-20147.1 KiB244171

gimple-streamer.hH A D02-Jan-20141.2 KiB379

gimple-walk.cH A D02-Jan-201423.8 KiB884700

gimple-walk.hH A D02-Jan-20144.1 KiB10132

gimple.cH A D16-Oct-201477.6 KiB2,8121,846

gimple.defH A D02-Jan-201415.3 KiB387280

gimple.hH A D20-Aug-2014137.4 KiB5,7443,592

gimplify-me.cH A D25-Mar-20149.8 KiB323235

gimplify-me.hH A D02-Jan-20141.5 KiB3812

gimplify.cH A D15-Aug-2014272.8 KiB9,1006,283

gimplify.hH A D30-Jun-20144.1 KiB10658

glimits.hH A D02-Jan-20143.6 KiB12771

godump.cH A D02-Jan-201430.7 KiB1,268945

graph.cH A D02-Jan-20149.1 KiB335238

graph.hH A D02-Jan-2014951 286

graphds.cH A D02-Jan-201410.4 KiB459303

graphds.hH A D02-Jan-20142 KiB6230

graphite-blocking.cH A D02-Jan-20146.7 KiB276130

graphite-clast-to-gimple.cH A D03-Mar-201445.9 KiB1,7461,190

graphite-clast-to-gimple.hH A D02-Jan-20141.2 KiB4515

graphite-dependences.cH A D02-Jan-201417.3 KiB605452

graphite-htab.hH A D02-Jan-20141.8 KiB6127

graphite-interchange.cH A D02-Jan-201419.2 KiB651339

graphite-optimize-isl.cH A D02-Jan-201414.9 KiB483297

graphite-poly.cH A D02-Jan-201428.8 KiB1,301903

graphite-poly.hH A D02-Jan-201436.8 KiB1,555905

graphite-scop-detection.cH A D28-May-201439.5 KiB1,6321,016

graphite-scop-detection.hH A D02-Jan-2014963 263

graphite-sese-to-poly.cH A D08-Apr-201479.7 KiB3,1812,187

graphite-sese-to-poly.hH A D02-Jan-2014963 339

graphite.cH A D02-Jan-20149.8 KiB429302

gsstruct.defH A D02-Jan-20142.6 KiB5446

gstab.hH A D02-Jan-2014977 3611

gsyms.hH A D02-Jan-20141.9 KiB10578

gsyslimits.hH A D10-May-2001330 93

gtm-builtins.defH A D28-Aug-20139.7 KiB209182

haifa-sched.cH A D01-Oct-2014241.6 KiB8,6205,651

hard-reg-set.hH A D02-Jan-201422.7 KiB725473

hash-table.cH A D02-Jan-20145.4 KiB190119

hash-table.hH A D09-Jan-201428.9 KiB1,061565

highlev-plugin-common.hH A D02-Jan-20141.1 KiB347

hooks.cH A D02-Jan-20149.8 KiB470346

hooks.hH A D02-Jan-20144.8 KiB11179

host-default.cH A D02-Jan-2014902 286

hosthooks-def.hH A D02-Jan-20141.8 KiB5225

hosthooks.hH A D02-Jan-20141.8 KiB4911

hw-doloop.cH A D08-Jan-201417.3 KiB670474

hw-doloop.hH A D02-Jan-20145.4 KiB15638

hwint.cH A D02-Jan-20144.5 KiB207120

hwint.hH A D02-Jan-201412.3 KiB352262

ifcvt.cH A D30-Sep-2014129.3 KiB4,7123,188

incpath.cH A D02-Jan-201414.7 KiB518361

incpath.hH A D02-Jan-20141.4 KiB3513

init-regs.cH A D02-Jan-20144.7 KiB178111

input.cH A D28-Jan-201425.6 KiB855482

input.hH A D23-Jan-20142.5 KiB6929

insn-addr.hH A D02-Jan-20141.8 KiB6438

insn-notes.defH A D02-Jan-20143.2 KiB9169

internal-fn.cH A D16-Oct-201427 KiB929690

internal-fn.defH A D16-Oct-20142.5 KiB5844

internal-fn.hH A D16-Oct-20141.7 KiB6829

intl.cH A D02-Jan-20143.5 KiB15180

intl.hH A D02-Jan-20141.8 KiB7040

ipa-cp.cH A D03-Sep-2014108.5 KiB3,8242,852

ipa-devirt.cH A D03-May-202260 KiB1,9871,348

ipa-inline-analysis.cH A D28-Mar-2014125.5 KiB4,3393,290

ipa-inline-transform.cH A D21-May-201415.2 KiB470289

ipa-inline.cH A D03-May-202273.9 KiB2,4231,721

ipa-inline.hH A D21-May-201411.3 KiB347182

ipa-profile.cH A D03-May-202222.5 KiB766619

ipa-prop.cH A D03-May-2022145 KiB4,9733,725

ipa-prop.hH A D26-Jun-201425.3 KiB719349

ipa-pure-const.cH A D26-Mar-201449.9 KiB1,7901,358

ipa-ref-inline.hH A D02-Jan-20142.6 KiB10959

ipa-ref.cH A D17-Jan-20148.7 KiB321231

ipa-ref.hH A D02-Jan-20142.6 KiB8045

ipa-reference.cH A D02-Jan-201436.3 KiB1,207879

ipa-reference.hH A D02-Jan-20141 KiB327

ipa-split.cH A D01-Oct-201456 KiB1,7841,271

ipa-utils.cH A D23-Mar-201420.8 KiB827600

ipa-utils.hH A D11-Feb-20146.5 KiB192124

ipa.cH A D19-May-201451.7 KiB1,6911,174

ira-build.cH A D02-Jan-2014100.8 KiB3,5172,751

ira-color.cH A D26-Mar-2014151.9 KiB4,8103,799

ira-conflicts.cH A D02-Jan-201424.9 KiB799629

ira-costs.cH A D22-May-201469.9 KiB2,3361,748

ira-emit.cH A D02-Jan-201440.3 KiB1,311987

ira-int.hH A D02-Jan-201454 KiB1,501787

ira-lives.cH A D02-Jan-201446.6 KiB1,6411,203

ira.cH A D20-Mar-2014171.1 KiB5,6383,890

ira.hH A D02-Jan-20147.8 KiB19995

is-a.hH A D02-Jan-20145.4 KiB20240

jump.cH A D18-Jan-201449.3 KiB1,9341,310

langhooks-def.hH A D30-Jun-201412.5 KiB315251

langhooks.cH A D30-Jun-201417.1 KiB688450

langhooks.hH A D30-Jun-201419.6 KiB499138

lcm.cH A D16-Jan-201427.4 KiB844530

libfuncs.hH A D02-Jan-20143.2 KiB10954

limitx.hH A D02-Jan-20141.4 KiB365

limity.hH A D10-May-2001270 115

lists.cH A D02-Jan-20145.8 KiB248163

lock-and-run.shH A D16-May-2013773 3521

loop-doloop.cH A D02-Jan-201422.8 KiB752438

loop-init.cH A D23-Apr-201416.2 KiB703486

loop-invariant.cH A D17-Jan-201450.6 KiB1,9631,360

loop-iv.cH A D03-May-202277.7 KiB3,0802,226

loop-unroll.cH A D02-Jan-201470.7 KiB2,5051,616

loop-unswitch.cH A D02-Jan-201413.2 KiB478301

lower-subreg.cH A D02-Jan-201447.8 KiB1,7921,201

lower-subreg.hH A D02-Jan-20142 KiB6121

lra-assigns.cH A D15-Oct-201455.5 KiB1,5331,137

lra-coalesce.cH A D15-Jan-201411.7 KiB364255

lra-constraints.cH A D15-Oct-2014191 KiB5,9984,378

lra-eliminations.cH A D23-May-201444.5 KiB1,414950

lra-int.hH A D15-Oct-201417.6 KiB518275

lra-lives.cH A D02-Jan-201431.6 KiB1,052773

lra-spills.cH A D02-Jan-201423.3 KiB738510

lra.cH A D15-Oct-201469.7 KiB2,4891,825

lra.hH A D02-Jan-20141.4 KiB4114

lto-cgraph.cH A D04-Apr-201458.3 KiB1,8301,360

lto-compress.cH A D02-Jan-20148.9 KiB320209

lto-compress.hH A D02-Jan-20141.5 KiB4316

lto-opts.cH A D25-Feb-20145.9 KiB181116

lto-section-in.cH A D04-Mar-201413 KiB475297

lto-section-out.cH A D02-Jan-201411.8 KiB447273

lto-streamer-in.cH A D03-Apr-201437.3 KiB1,383957

lto-streamer-out.cH A D05-Oct-201475.1 KiB2,5441,811

lto-streamer.cH A D02-Jan-201410.8 KiB405280

lto-streamer.hH A D05-Feb-201436.5 KiB1,197655

lto-wrapper.cH A D25-Mar-201428 KiB1,080811

machmode.defH A D02-Jan-20149.3 KiB255198

machmode.hH A D02-Jan-201411.5 KiB329168

main.cH A D02-Jan-20141.1 KiB3812

mcf.cH A D02-Jan-201439.6 KiB1,403971

mkconfig.shH A D02-Jan-20143.7 KiB12668

mode-classes.defH A D02-Jan-20141.8 KiB3933

mode-switching.cH A D28-Mar-201423.6 KiB832552

modulo-sched.cH A D06-Jan-201499.9 KiB3,3962,280

omega.cH A D02-Jan-2014127.4 KiB5,5584,334

omega.hH A D02-Jan-20149.2 KiB342202

omp-builtins.defH A D02-Jan-201411.3 KiB239229

omp-low.cH A D03-Oct-2014357.6 KiB12,0659,169

omp-low.hH A D29-Jan-20141.1 KiB329

opt-functions.awkH A D03-Mar-20149.9 KiB348263

opt-gather.awkH A D02-Jan-20141.5 KiB5525

opt-include.awkH A D02-Jan-20141.1 KiB308

opt-read.awkH A D02-Jan-20143.3 KiB12495

optabs.cH A D14-Aug-2014255 KiB8,5885,918

optabs.defH A D24-Mar-201415.4 KiB325296

optabs.hH A D02-Jan-201419.6 KiB560323

optc-gen.awkH A D14-May-201416.1 KiB482398

optc-save-gen.awkH A D02-Jan-201411.8 KiB421317

opth-gen.awkH A D02-Jan-201413.8 KiB480377

opts-common.cH A D02-Jan-201438.1 KiB1,339979

opts-diagnostic.hH A D02-Jan-2014953 265

opts-global.cH A D02-Jan-201411.5 KiB434302

opts.cH A D16-Oct-201466.1 KiB2,2611,741

opts.hH A D03-Mar-201414.2 KiB405220

output.hH A D20-Jan-201423.6 KiB609259

params.cH A D02-Jan-20145 KiB191105

params.defH A D16-Oct-201440.4 KiB1,104922

params.hH A D16-Oct-20148.1 KiB239146

pass_manager.hH A D02-Jan-20143.6 KiB13768

passes.cH A D25-Apr-201474.3 KiB2,7441,925

passes.defH A D17-Jan-201415.7 KiB418402

plugin.cH A D02-Jan-201425.5 KiB892600

plugin.defH A D18-Mar-20143.1 KiB10774

plugin.hH A D02-Jan-20142.3 KiB7233

pointer-set.cH A D02-Jan-20147.5 KiB272169

pointer-set.hH A D02-Jan-20144.9 KiB171104

postreload-gcse.cH A D02-Jan-201437.5 KiB1,364850

postreload.cH A D02-Jan-201469.5 KiB2,3791,670

predict.cH A D18-Mar-201491.4 KiB3,2732,343

predict.defH A D18-Mar-20147.8 KiB179133

predict.hH A D02-Jan-20142 KiB5930

prefix.cH A D02-Jan-20148.7 KiB352215

prefix.hH A D02-Jan-20141.2 KiB4111

pretty-print.cH A D02-Jan-201429.5 KiB1,174851

pretty-print.hH A D02-Jan-201412.4 KiB339181

print-rtl.cH A D10-Feb-201421 KiB855666

print-rtl.hH A D02-Jan-2014846 286

print-tree.cH A D02-Jan-201429.8 KiB1,132934

print-tree.hH A D02-Jan-20141.7 KiB4725

profile.cH A D03-May-202242 KiB1,4971,058

profile.hH A D02-Jan-20141.7 KiB5617

read-md.cH A D02-Jan-201427.6 KiB1,153776

read-md.hH A D02-Jan-20144.5 KiB14172

read-rtl.cH A D29-Jan-201437 KiB1,398965

real.cH A D26-Mar-2014107.6 KiB4,9333,733

real.hH A D02-Jan-201418 KiB489253

realmpfr.cH A D02-Jan-20142.8 KiB10352

realmpfr.hH A D02-Jan-20141.3 KiB399

recog.cH A D09-Sep-2014107.9 KiB4,1372,856

recog.hH A D02-Jan-201414.3 KiB365210

ree.cH A D13-Jun-201437 KiB1,177628

reg-notes.defH A D02-Jan-20149.1 KiB214174

reg-stack.cH A D02-Jan-201498 KiB3,3832,054

regcprop.cH A D09-Oct-201436.6 KiB1,304958

reginfo.cH A D15-Jan-201437.3 KiB1,304886

regrename.cH A D02-Jan-201454.7 KiB1,8821,343

regrename.hH A D02-Jan-20142.9 KiB9741

regs.hH A D02-Jan-201413.6 KiB425203

regset.hH A D02-Jan-20144.8 KiB12739

regstat.cH A D02-Jan-201417.5 KiB612403

reload.cH A D16-Jan-2014244.7 KiB7,4464,826

reload.hH A D02-Jan-201417.1 KiB461164

reload1.cH A D26-Feb-2014295.3 KiB9,2695,860

reorg.cH A D18-Jan-2014123.9 KiB3,9772,445

resource.cH A D02-Jan-201438.9 KiB1,304816

resource.hH A D02-Jan-20141.9 KiB5829

rtl-error.cH A D02-Jan-20143.3 KiB12280

rtl-error.hH A D02-Jan-2014943 254

rtl.cH A D02-Jan-201420.9 KiB833569

rtl.defH A D02-Jan-201459.1 KiB1,3531,085

rtl.hH A D23-Jan-2014103.8 KiB2,8041,634

rtlanal.cH A D26-Mar-2014160.8 KiB5,9343,992

rtlhooks-def.hH A D02-Jan-20141.8 KiB5125

rtlhooks.cH A D02-Jan-20144.8 KiB15795

sanitizer.defH A D16-Oct-201417 KiB368345

sbitmap.cH A D02-Jan-201418 KiB764552

sbitmap.hH A D02-Jan-20148.7 KiB266129

sched-deps.cH A D01-Sep-2014135.9 KiB4,9073,482

sched-ebb.cH A D02-Jan-201419.6 KiB744480

sched-int.hH A D18-Feb-201457.2 KiB1,622655

sched-rgn.cH A D24-Feb-2014104.2 KiB3,7932,379

sched-vis.cH A D02-Jan-201421.5 KiB880747

sdbout.cH A D18-Mar-201447 KiB1,6451,099

sdbout.hH A D02-Jan-2014822 222

sel-sched-dump.cH A D02-Jan-201421.8 KiB1,065780

sel-sched-dump.hH A D02-Jan-20146.8 KiB235118

sel-sched-ir.cH A D03-Jun-2014170.3 KiB6,4504,350

sel-sched-ir.hH A D02-Jan-201447.5 KiB1,656941

sel-sched.cH A D25-Feb-2014242.5 KiB7,8044,793

sel-sched.hH A D02-Jan-2014920 285

sese.cH A D02-Jan-201421.1 KiB832560

sese.hH A D02-Jan-20149.8 KiB391218

simplify-rtx.cH A D02-Jan-2014181 KiB6,2364,629

sparseset.cH A D02-Jan-20145.3 KiB240155

sparseset.hH A D24-Feb-20146.8 KiB22099

sreal.cH A D02-Jan-201411.7 KiB559426

sreal.hH A D02-Jan-20142.1 KiB6738

ssa-iterators.hH A D02-Jan-201429 KiB997644

stab.defH A D02-Jan-20149 KiB240189

stack-ptr-mod.cH A D02-Jan-20143.5 KiB12980

statistics.cH A D02-Jan-20149.6 KiB365264

statistics.hH A D02-Jan-20142.8 KiB7245

stmt.cH A D02-Jan-201464.3 KiB2,0771,324

stmt.hH A D02-Jan-20141.2 KiB3512

stor-layout.cH A D03-May-202292.6 KiB2,8491,791

stor-layout.hH A D02-Jan-20144.9 KiB11658

store-motion.cH A D02-Jan-201435 KiB1,282859

streamer-hooks.cH A D02-Jan-20141.1 KiB3911

streamer-hooks.hH A D02-Jan-20143.2 KiB8324

stringpool.cH A D02-Jan-20146.9 KiB288166

stringpool.hH A D02-Jan-20141.5 KiB4412

symtab.cH A D19-May-201435.9 KiB1,3421,015

sync-builtins.defH A D02-Jan-201427 KiB615563

system.hH A D03-May-202233.1 KiB1,068746

target-def.hH A D02-Jan-20143.6 KiB11066

target-globals.cH A D07-Feb-20144.1 KiB137104

target-globals.hH A D10-Jan-20143.2 KiB9064

target-hooks-macros.hH A D02-Jan-20144 KiB8112

target.defH A D02-Jan-2014237.2 KiB5,3504,955

target.hH A D02-Jan-20146.3 KiB208100

targhooks.cH A D03-Mar-201442.6 KiB1,7121,211

targhooks.hH A D02-Jan-20149.6 KiB211156

timevar.cH A D02-Jan-201416.7 KiB606353

timevar.defH A D02-Jan-201414.4 KiB278260

timevar.hH A D02-Jan-20143.5 KiB11643

tlink.cH A D02-Jan-201420 KiB866628

toplev.cH A D03-May-202258.5 KiB2,0201,318

toplev.hH A D02-Jan-20142.7 KiB8131

tracer.cH A D02-Jan-201411.5 KiB444311

trans-mem.cH A D02-Jan-2014157.4 KiB5,6183,749

trans-mem.hH A D02-Jan-20141.8 KiB5127

tree-affine.cH A D02-Jan-201423.5 KiB947707

tree-affine.hH A D02-Jan-20143.1 KiB9643

tree-browser.cH A D02-Jan-201421.2 KiB973745

tree-browser.defH A D02-Jan-20144.7 KiB9884

tree-call-cdce.cH A D02-Jan-201430.2 KiB966586

tree-cfg.cH A D20-Aug-2014226.6 KiB8,5986,217

tree-cfg.hH A D29-Jan-20144.3 KiB10075

tree-cfgcleanup.cH A D17-Sep-201431.6 KiB1,197774

tree-cfgcleanup.hH A D02-Jan-2014973 296

tree-chrec.cH A D02-Jan-201443.1 KiB1,6121,122

tree-chrec.hH A D02-Jan-20147.1 KiB258168

tree-complex.cH A D02-Jan-201445.3 KiB1,7421,262

tree-core.hH A D30-Jun-201451.4 KiB1,849918

tree-data-ref.cH A D15-Oct-2014135.9 KiB4,8513,301

tree-data-ref.hH A D15-Oct-201418.7 KiB624340

tree-dfa.cH A D22-Apr-201422.2 KiB783551

tree-dfa.hH A D02-Jan-20145.2 KiB185128

tree-diagnostic.cH A D02-Jan-201410.8 KiB313143

tree-diagnostic.hH A D02-Jan-20142.2 KiB5821

tree-dump.cH A D02-Jan-201419.6 KiB778573

tree-dump.hH A D02-Jan-20142.8 KiB9440

tree-eh.cH A D20-Feb-2014129.5 KiB4,7943,319

tree-eh.hH A D02-Jan-20142.1 KiB5331

tree-emutls.cH A D02-Jan-201424.2 KiB864565

tree-hasher.hH A D02-Jan-20141.5 KiB6026

tree-if-conv.cH A D04-Feb-201453.1 KiB2,0651,324

tree-inline.cH A D13-May-2014170.7 KiB5,6233,827

tree-inline.hH A D02-Jan-20146.5 KiB20971

tree-into-ssa.cH A D02-Jan-201495.9 KiB3,3651,949

tree-into-ssa.hH A D02-Jan-20141.9 KiB5329

tree-iterator.cH A D02-Jan-20147.1 KiB326233

tree-iterator.hH A D02-Jan-20143.2 KiB12472

tree-loop-distribution.cH A D02-Jan-201447.8 KiB1,8371,360

tree-nested.cH A D30-Jun-201488 KiB2,9922,181

tree-nested.hH A D02-Jan-2014961 286

tree-nrv.cH A D09-Oct-201411.7 KiB420255

tree-object-size.cH A D02-Jan-201436 KiB1,3211,017

tree-object-size.hH A D02-Jan-2014930 275

tree-outof-ssa.cH A D02-Jan-201431.8 KiB1,227809

tree-outof-ssa.hH A D02-Jan-20142.5 KiB7932

tree-parloops.cH A D02-Jan-201468 KiB2,3131,466

tree-parloops.hH A D02-Jan-2014902 275

tree-pass.hH A D02-Jan-201428.4 KiB628423

tree-phinodes.cH A D02-Jan-201415.7 KiB530298

tree-phinodes.hH A D02-Jan-20142.2 KiB7034

tree-predcom.cH A D10-Jan-201467.4 KiB2,6211,686

tree-pretty-print.cH A D30-Jun-201492.1 KiB3,4962,906

tree-pretty-print.hH A D02-Jan-20142.1 KiB5527

tree-profile.cH A D02-Jan-201422.8 KiB715505

tree-scalar-evolution.cH A D13-Jan-2014101.2 KiB3,5342,012

tree-scalar-evolution.hH A D02-Jan-20142.4 KiB7135

tree-sra.cH A D02-Oct-2014145.1 KiB5,0973,692

tree-ssa-address.cH A D02-Jan-201427.2 KiB1,025736

tree-ssa-address.hH A D02-Jan-20141.2 KiB3311

tree-ssa-alias.cH A D11-Jun-201474.7 KiB2,5131,793

tree-ssa-alias.hH A D02-Jan-20146.1 KiB17387

tree-ssa-ccp.cH A D08-Feb-201476.8 KiB2,7521,896

tree-ssa-coalesce.cH A D05-Mar-201434.6 KiB1,359907

tree-ssa-coalesce.hH A D02-Jan-2014876 264

tree-ssa-copy.cH A D17-Jul-201419.4 KiB680402

tree-ssa-copyrename.cH A D02-Jan-201412.9 KiB484311

tree-ssa-dce.cH A D02-Jan-201446.5 KiB1,6291,032

tree-ssa-dom.cH A D26-Feb-201496.1 KiB3,1592,000

tree-ssa-dom.hH A D02-Jan-20141,013 297

tree-ssa-dse.cH A D02-Jan-201411.9 KiB410228

tree-ssa-forwprop.cH A D30-Jan-2014116.9 KiB3,8842,835

tree-ssa-ifcombine.cH A D04-Jul-201424.5 KiB807519

tree-ssa-live.cH A D21-Feb-201439.7 KiB1,464985

tree-ssa-live.hH A D02-Jan-20149.3 KiB328153

tree-ssa-loop-ch.cH A D02-Jan-20148.4 KiB304190

tree-ssa-loop-im.cH A D23-Apr-201471.2 KiB2,5831,686

tree-ssa-loop-ivcanon.cH A D02-Jan-201443.2 KiB1,4351,002

tree-ssa-loop-ivopts.cH A D06-Aug-2014182.1 KiB6,9074,801

tree-ssa-loop-ivopts.hH A D02-Jan-20141.4 KiB3715

tree-ssa-loop-manip.cH A D02-Jan-201443 KiB1,407881

tree-ssa-loop-manip.hH A D02-Jan-20141.9 KiB5025

tree-ssa-loop-niter.cH A D09-Sep-2014112.8 KiB3,8972,562

tree-ssa-loop-niter.hH A D02-Jan-20142.2 KiB4927

tree-ssa-loop-prefetch.cH A D02-Jan-201462.2 KiB2,0611,272

tree-ssa-loop-unswitch.cH A D02-Jan-201411.3 KiB459297

tree-ssa-loop.cH A D02-Jan-201414.6 KiB689503

tree-ssa-loop.hH A D02-Jan-20142.7 KiB8229

tree-ssa-math-opts.cH A D01-Aug-201486.6 KiB2,9491,990

tree-ssa-operands.cH A D20-Aug-201435.8 KiB1,361887

tree-ssa-operands.hH A D02-Jan-20143.9 KiB12366

tree-ssa-phiopt.cH A D02-Jan-201468 KiB2,2951,343

tree-ssa-phiprop.cH A D15-Feb-201412.6 KiB455275

tree-ssa-pre.cH A D10-Jan-2014137.7 KiB4,9013,498

tree-ssa-propagate.cH A D22-Apr-201442 KiB1,469872

tree-ssa-propagate.hH A D02-Jan-20143.3 KiB8837

tree-ssa-reassoc.cH A D03-May-2022133.2 KiB4,7433,306

tree-ssa-sccvn.cH A D11-Jun-2014117.5 KiB4,2423,072

tree-ssa-sccvn.hH A D02-Jan-20147.9 KiB245144

tree-ssa-sink.cH A D10-Jan-201416.7 KiB637370

tree-ssa-strlen.cH A D02-Jan-201455.2 KiB2,1351,707

tree-ssa-structalias.cH A D08-Jul-2014204.5 KiB7,4675,163

tree-ssa-tail-merge.cH A D10-Oct-201445 KiB1,7511,107

tree-ssa-ter.cH A D02-Jan-201425.6 KiB812453

tree-ssa-ter.hH A D02-Jan-2014916 275

tree-ssa-threadedge.cH A D12-Jun-201437.9 KiB1,208683

tree-ssa-threadedge.hH A D02-Jan-20141.4 KiB3715

tree-ssa-threadupdate.cH A D22-Jan-201456 KiB1,835993

tree-ssa-threadupdate.hH A D02-Jan-20141.4 KiB4721

tree-ssa-uncprop.cH A D02-Jan-201417.6 KiB628374

tree-ssa-uninit.cH A D27-Feb-201467.8 KiB2,4581,648

tree-ssa.cH A D17-Feb-201445.3 KiB1,7171,187

tree-ssa.hH A D02-Jan-20142.6 KiB8345

tree-ssanames.cH A D04-Apr-201417.7 KiB642396

tree-ssanames.hH A D20-Aug-20145 KiB15274

tree-stdarg.cH A D02-Jan-201426.7 KiB1,039759

tree-stdarg.hH A D02-Jan-20141.1 KiB3713

tree-streamer-in.cH A D22-May-201437 KiB1,146743

tree-streamer-out.cH A D03-Apr-201433.7 KiB1,026635

tree-streamer.cH A D03-Apr-201410 KiB365224

tree-streamer.hH A D03-Apr-20144.6 KiB12459

tree-switch-conversion.cH A D02-Jan-201445.1 KiB1,516906

tree-tailcall.cH A D29-Apr-201431.7 KiB1,172763

tree-vect-data-refs.cH A D28-Oct-2014172.6 KiB5,3033,416

tree-vect-generic.cH A D30-Jun-201452.2 KiB1,7351,348

tree-vect-loop-manip.cH A D14-Jan-201484 KiB2,4481,326

tree-vect-loop.cH A D03-May-2022203.4 KiB6,1454,190

tree-vect-patterns.cH A D02-Jan-201499.5 KiB3,2572,050

tree-vect-slp.cH A D10-Oct-201499.1 KiB3,2702,409

tree-vect-stmts.cH A D25-Sep-2014250.5 KiB8,1256,002

tree-vectorizer.cH A D02-Jan-201419.3 KiB750542

tree-vectorizer.hH A D25-Sep-201439.2 KiB1,136657

tree-vrp.cH A D08-Jul-2014287.2 KiB9,9476,905

tree.cH A D16-Oct-2014341.9 KiB12,3828,482

tree.defH A D02-Jan-201461 KiB1,2981,068

tree.hH A D30-Jun-2014184.4 KiB4,5942,552

treestruct.defH A D02-Jan-20142.7 KiB7161

tsan.cH A D08-Jan-201428.5 KiB825697

tsan.hH A D02-Jan-2014876 274

tsystem.hH A D02-Jan-20143.8 KiB13859

typeclass.hH A D02-Jan-20141.5 KiB4415

ubsan.cH A D22-Sep-201427.8 KiB951706

ubsan.hH A D26-Mar-20141.6 KiB5022

valtrack.cH A D02-Jan-201420.2 KiB741520

valtrack.hH A D02-Jan-20144.9 KiB15670

value-prof.cH A D03-May-202257.4 KiB2,0001,497

value-prof.hH A D02-Jan-20144.7 KiB12077

var-tracking.cH A D28-Feb-2014270.9 KiB10,3927,642

varasm.cH A D11-Apr-2014216.4 KiB7,6195,218

varasm.hH A D02-Jan-20142.7 KiB7023

varpool.cH A D05-Oct-201420.2 KiB712497

vec.cH A D12-Feb-20147.4 KiB279192

vec.hH A D12-Feb-201447.9 KiB1,728927

version.cH A D02-Jan-20141.4 KiB364

version.hH A D21-Aug-2007184 76

vmsdbg.hH A D02-Jan-20146.5 KiB256176

vmsdbgout.cH A D02-Jan-201453.9 KiB1,8191,279

vtable-verify.cH A D02-Jan-201428 KiB792438

vtable-verify.hH A D02-Jan-20146.6 KiB14149

web.cH A D02-Jan-201413.5 KiB489337

xcoff.hH A D02-Jan-20141.1 KiB3612

xcoffout.cH A D02-Jan-201413.4 KiB496306

xcoffout.hH A D02-Jan-20146.4 KiB18789

README.Portability

1Copyright (C) 2000-2014 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