8sa1-gcc/gcc
Laurynas Biveinis d88f54b340 ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc-zone.c (ggc_pch_read): Fix conditional compilation.
	* ggc-none.c (ggc_internal_alloc_zone_stat)
	(ggc_internal_cleared_alloc_zone_stat): New.

From-SVN: r167284
2010-11-30 04:12:56 +00:00
..
ada re PR ada/46574 (ada bootstrap fails with --enable-build-with-cxx.) 2010-11-27 19:07:08 +00:00
c-family system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
config rs6000.c (rs6000_reg_live_or_pic_offset_p): Check TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM. 2010-11-30 01:47:54 +00:00
cp Fix PR c++/42260 and ensure PR c++/45383 is fixed 2010-11-29 17:31:40 +01:00
doc rs6000.c (rs6000_reg_live_or_pic_offset_p): Check TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM. 2010-11-30 01:47:54 +00:00
fortran system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
ginclude
java system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
lto system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
objc Allow 'make check-objc -j2' 2010-11-29 23:07:37 +00:00
objcp In gcc/objc/: 2010-11-23 Nicola Pero <nicola.pero@meta-innovation.com> 2010-11-23 09:47:07 +00:00
po * es.po: Update. 2010-11-29 23:21:08 +00:00
testsuite In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 2010-11-29 20:45:49 +00:00
ABOUT-GCC-NLS
acinclude.m4
aclocal.m4
addresses.h re PR rtl-optimization/44764 (ok_for_base_p_1: unused parameter regno) 2010-11-10 10:07:18 +00:00
alias.c re PR rtl-optimization/45652 (gcc.dg/compat/scalar-by-value-3 FAILs with -O2 -fselective-scheduling2) 2010-11-22 13:35:06 +03:00
alias.h
alloc-pool.c
alloc-pool.h
attribs.c
auto-inc-dec.c
BASE-VER
basic-block.h Revert revision 164552. 2010-11-03 10:07:04 -07:00
bb-reorder.c
bb-reorder.h
bitmap.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
bitmap.h
bt-load.c
builtin-attrs.def builtin-attrs.def (ATTR_LEAF): New attribute. 2010-09-28 16:34:36 +00:00
builtin-types.def
builtins.c re PR middle-end/46647 (Can't inline memset with -1) 2010-11-26 10:38:54 +01:00
builtins.def builtins.def (BUILT_IN_CALLOC, [...]): Mark as leaf. 2010-10-06 09:48:46 +02:00
builtins.h
c-aux-info.c
c-config-lang.in
c-convert.c
c-decl.c re PR c/46462 (Revision 166700 caused new C test failures) 2010-11-14 13:10:41 +00:00
c-errors.c
c-lang.c In gcc/: 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 2010-10-20 09:08:57 +00:00
c-lang.h
c-objc-common.c
c-objc-common.h Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h. 2010-10-08 16:17:32 +01:00
c-parser.c In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com> 2010-11-29 03:15:40 +00:00
c-tree.h re PR c/46547 (internal compiler error when converting a complex to a bool) 2010-11-19 18:32:57 +00:00
c-typeck.c re PR c/46547 (internal compiler error when converting a complex to a bool) 2010-11-19 18:32:57 +00:00
caller-save.c caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails... 2010-11-08 15:07:32 +00:00
calls.c builtins.c (std_gimplify_va_arg_expr): Use targetm.calls.function_arg_boundary. 2010-11-16 14:25:07 +00:00
cfg.c
cfganal.c
cfgbuild.c
cfgcleanup.c Revert revision 164552. 2010-11-03 10:07:04 -07:00
cfgexpand.c re PR middle-end/46629 (Failed to build 200.sixtrack in SPEC CPU 2000) 2010-11-24 09:57:37 +01:00
cfghooks.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
cfghooks.h
cfglayout.c re PR middle-end/46515 (Many libjava failures) 2010-11-18 13:08:38 -08:00
cfglayout.h
cfgloop.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
cfgloop.h
cfgloopanal.c
cfgloopmanip.c re PR tree-optimization/46107 (-ftree-loop-distribute-patterns caused verify_loop_structure problem) 2010-11-03 10:49:16 +01:00
cfgrtl.c mode-switching.c (optimize_mode_switching): Use FOR_BB_INSNS instead of open-coded for loop. 2010-11-19 19:56:01 +01:00
cgraph.c re PR tree-optimization/46560 (libstdc++ execute FAILs with -flto) 2010-11-26 14:39:25 +00:00
cgraph.h tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
cgraphbuild.c gimple-fold.c (maybe_fold_reference): When canonicalizing MEM_REFs, preserve volatileness. 2010-11-22 13:18:48 +00:00
cgraphunit.c cgraphunit.c (process_function_and_variable_attributes): Mark dllexport-ed function/variables as needed. 2010-11-25 13:30:07 +01:00
ChangeLog ggc-zone.c (ggc_pch_read): Fix conditional compilation. 2010-11-30 04:12:56 +00:00
ChangeLog-1997
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog.dataflow
ChangeLog.graphite Fix PR45758: reset scevs before Graphite. 2010-09-30 21:22:07 +00:00
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
cif-code.def
collect2-aix.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
collect2-aix.h
collect2.c * collect2.c (main): Do not imply verbose output with LTO and linker plugin. 2010-11-29 16:58:59 +00:00
collect2.h
combine-stack-adj.c common.opt: Add -fcombine-stack-adjustments. 2010-10-01 12:48:50 +00:00
combine.c re PR middle-end/46637 (SIGSEGV in if_then_else_cond - too deep recursion) 2010-11-25 19:00:47 +01:00
common.opt options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
conditions.h
config.build
config.gcc * config.gcc (sparc*-*-*): Reorder. 2010-11-23 09:32:07 +00:00
config.host config.host: Update copyright year. 2010-10-07 21:04:47 +00:00
config.in system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
configure system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
configure.ac system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
convert.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
convert.h
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
coretypes.h tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
coverage.c
coverage.h
cppbuiltin.c re PR bootstrap/44756 ([meta-bug] --enable-werror-always issues) 2010-11-29 04:38:21 +00:00
cppbuiltin.h cppbuiltin.c: New file. 2010-10-03 19:00:55 +00:00
cppdefault.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
cppdefault.h
cppspec.c
crtstuff.c
cse.c cse.c (is_dead_reg): Change into inline function that is not called through for_each_rtx. 2010-10-14 09:17:54 +02:00
cselib.c
cselib.h
cstamp-h.in
DATESTAMP Daily bump. 2010-11-30 00:20:50 +00:00
dbgcnt.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
dbgcnt.def
dbgcnt.h
dbxout.c godump.c: New file. 2010-11-15 21:38:40 +00:00
dbxout.h
dce.c re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation) 2010-11-16 22:13:52 +00:00
dce.h
ddg.c ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead of gcc_checking_assert. 2010-10-21 21:39:13 +00:00
ddg.h
debug.c godump.c: New file. 2010-11-15 21:38:40 +00:00
debug.h godump.c: New file. 2010-11-15 21:38:40 +00:00
defaults.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
DEV-PHASE
df-core.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
df-problems.c re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation) 2010-11-16 22:13:52 +00:00
df-scan.c re PR bootstrap/44970 (Revision 162270 failed to bootstrap) 2010-11-22 16:20:16 +00:00
df.h re PR bootstrap/44970 (Revision 162270 failed to bootstrap) 2010-11-22 16:20:16 +00:00
dfp.c
dfp.h
diagnostic-core.h
diagnostic.c re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
diagnostic.def
diagnostic.h re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
dojump.c
dominance.c
domwalk.c
domwalk.h
double-int.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
double-int.h Fix PR/46316 2010-11-09 02:01:06 +00:00
dse.c
dse.h
dwarf2asm.c re PR middle-end/45862 (SUPPORTS_WEAK is documented as a C expression, used as a compile time constant) 2010-10-11 16:52:12 +00:00
dwarf2asm.h
dwarf2out.c Add addresses of DIEs to debug_dwarf_die 2010-11-29 17:29:41 +01:00
dwarf2out.h
ebitmap.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
ebitmap.h
emit-rtl.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
emit-rtl.h
emutls.c
errors.c
errors.h
et-forest.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
et-forest.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
except.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
except.h
exec-tool.in Check and export LT_RCU_$id instead of LT_RCU. 2010-11-29 14:18:35 -08:00
explow.c explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT. 2010-11-06 03:44:58 +00:00
expmed.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
expmed.h
expr.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
expr.h expr.c (emit_group_load_1): Update calls to extract_bit_field. 2010-10-22 00:40:15 +00:00
final.c re PR middle-end/44769 (warning for split_double when HOST_BITS_PER_WIDE_INT < BITS_PER_WORD) 2010-11-12 17:24:16 +00:00
fixed-value.c
fixed-value.h
flag-types.h common.opt (user_vect_verbosity_level): New Variable entry. 2010-11-24 13:28:38 +00:00
flags.h common.opt (initial_max_fld_align, [...]): New Variable entries. 2010-11-24 00:54:26 +00:00
fold-const.c re PR bootstrap/45700 (--enable-checking=fold bootstrap failures) 2010-11-26 10:35:35 +01:00
fp-test.c
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
function.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
function.h tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
fwprop.c re PR bootstrap/44970 (Revision 162270 failed to bootstrap) 2010-11-22 16:20:16 +00:00
gbl-ctors.h
gcc-plugin.h
gcc.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
gcc.h
gccspec.c
gcov-dump.c
gcov-io.c
gcov-io.h
gcov-iov.c
gcov.c
gcse.c re PR rtl-optimization/46571 (bootstrap comparison failure in fortran/trans-openmp.c) 2010-11-21 09:19:37 -08:00
gcse.h
gdbinit.in
genattr.c
genattrtab.c
genautomata.c vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +00:00
gencheck.c
genchecksum.c Build compiler checksum from object files v2 2010-10-11 13:06:50 +00:00
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c
genenums.c
genextract.c
genflags.c
gengenrtl.c
gengtype-lex.l gengtype.c (get_output_file_name): Declaration moved to gengtype.h. 2010-11-09 07:36:26 +00:00
gengtype-parse.c gengtype.c (enum typekind, [...]): Move to gengtype.h. 2010-11-23 15:13:12 +00:00
gengtype-state.c gengtype-state.c (read_state_structures): Initialize "previous". 2010-11-25 22:50:53 +01:00
gengtype.c gentype-state.c: Add new file. 2010-11-25 19:03:27 +00:00
gengtype.h gentype-state.c: Add new file. 2010-11-25 19:03:27 +00:00
genhooks.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
genmddeps.c
genmodes.c
genmultilib
genopinit.c re PR bootstrap/44756 ([meta-bug] --enable-werror-always issues) 2010-11-04 20:51:43 +00:00
genoutput.c
genpeep.c
genpreds.c
genrecog.c
gensupport.c gensupport.c (MNEMONIC_ATTR_NAME, [...]): New macros. 2010-11-16 15:33:53 +00:00
gensupport.h
ggc-common.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
ggc-internal.h
ggc-none.c ggc-zone.c (ggc_pch_read): Fix conditional compilation. 2010-11-30 04:12:56 +00:00
ggc-page.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
ggc-zone.c ggc-zone.c (ggc_pch_read): Fix conditional compilation. 2010-11-30 04:12:56 +00:00
ggc.h
gimple-fold.c gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p. 2010-11-27 14:32:47 +00:00
gimple-iterator.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
gimple-low.c builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +00:00
gimple-pretty-print.c gimple-pretty-print.c (dump_bb_header): Add check for cfun. 2010-11-22 19:01:20 +00:00
gimple-pretty-print.h
gimple.c gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p. 2010-11-27 14:32:47 +00:00
gimple.def
gimple.h re PR tree-optimization/46621 (gimple.h includes tm.h) 2010-11-29 00:50:04 +00:00
gimplify.c common.opt (flag_instrument_functions_exclude_functions, [...]): New Variable definitions. 2010-11-19 13:27:18 +00:00
glimits.h
godump.c godump.c: New file. 2010-11-15 21:38:40 +00:00
graph.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
graph.h
graphds.c
graphds.h
graphite-blocking.c Outline lst_niter_for_loop. 2010-09-30 21:20:14 +00:00
graphite-clast-to-gimple.c Fix Graphite memory leaks. 2010-09-30 21:21:29 +00:00
graphite-clast-to-gimple.h
graphite-cloog-compat.h New flag: -fgraphite-dump-cloog. 2010-09-30 21:21:21 +00:00
graphite-cloog-util.c Remove warning because of CLooG isl/ppl difference 2010-11-12 22:08:48 +00:00
graphite-cloog-util.h Enable graphite to read an OpenScop file. 2010-09-30 21:17:12 +00:00
graphite-dependences.c Avoid set but not used warning. 2010-09-30 21:19:26 +00:00
graphite-dependences.h
graphite-flattening.c Fix comments. 2010-09-30 21:20:52 +00:00
graphite-interchange.c Fix pbb_number_of_iterations_at_time. 2010-09-30 21:20:30 +00:00
graphite-poly.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
graphite-poly.h New pass: loop flattening. 2010-09-30 21:20:45 +00:00
graphite-ppl.c
graphite-ppl.h
graphite-scop-detection.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
graphite-scop-detection.h
graphite-sese-to-poly.c vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +00:00
graphite-sese-to-poly.h
graphite.c Fix PR45758: reset scevs before Graphite. 2010-09-30 21:22:07 +00:00
graphite.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gthr-aix.h
gthr-dce.h
gthr-gnat.c
gthr-gnat.h
gthr-lynx.h
gthr-mipssde.h
gthr-nks.h
gthr-posix95.h
gthr-posix.c
gthr-posix.h
gthr-rtems.h
gthr-single.h
gthr-solaris.h
gthr-tpf.h
gthr-vxworks.h
gthr-win32.h
gthr.h
haifa-sched.c common.opt (initial_max_fld_align, [...]): New Variable entries. 2010-11-24 00:54:26 +00:00
hard-reg-set.h
highlev-plugin-common.h
hooks.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
hooks.h target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
host-default.c
hosthooks-def.h
hosthooks.h
hwint.h
ifcvt.c * ifcvt.c (dead_or_predicable): Fix typo. 2010-11-16 23:29:15 +00:00
implicit-zee.c
incpath.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
incpath.h
init-regs.c
input.c
input.h
insn-addr.h
insn-notes.def
integrate.c
integrate.h
intl.c
intl.h
ipa-cp.c re PR lto/45736 (ICE: in cgraph_remove_unreachable_nodes, at ipa.c:245 with -flto and attribute((constructor))) 2010-10-26 16:40:16 +00:00
ipa-inline.c re PR tree-optimization/40436 (0.5% code size regression caused by r147852) 2010-11-11 22:08:26 +00:00
ipa-prop.c re PR tree-optimization/45722 (FAIL: gcc.c-torture/execute/20040709-2.c execution at -O1 and -Os) 2010-11-14 11:24:47 +00:00
ipa-prop.h
ipa-pure-const.c re PR tree-optimization/46233 (ICE: verify_flow_info failed: control flow in the middle of basic block 3 with -foptimize-sibling-calls) 2010-11-04 19:45:06 +01:00
ipa-ref-inline.h
ipa-ref.c
ipa-ref.h
ipa-reference.c extend.texi: (attribute leaf): Document. 2010-09-24 19:14:51 +00:00
ipa-reference.h
ipa-split.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00:00
ipa-struct-reorg.c
ipa-struct-reorg.h
ipa-type-escape.c gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p. 2010-11-27 14:32:47 +00:00
ipa-type-escape.h
ipa-utils.c
ipa-utils.h
ipa.c cgraphunit.c (process_function_and_variable_attributes): Mark dllexport-ed function/variables as needed. 2010-11-25 13:30:07 +01:00
ira-build.c
ira-color.c common.opt (fira-coalesce): Remove. 2010-10-04 20:37:57 +00:00
ira-conflicts.c re PR rtl-optimization/46237 (SPECint2006 403.gcc fails with -mzarch -m31) 2010-11-09 15:52:24 +00:00
ira-costs.c re PR rtl-optimization/45912 (Patch for PR tree-optimization/44972 caused 2500+ FAILs on Solaris 2/SPARC) 2010-10-13 21:43:42 +00:00
ira-emit.c re PR fortran/42169 (gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371) 2010-10-20 13:51:31 +00:00
ira-int.h
ira-lives.c re PR bootstrap/45445 (ARM bootstrap failure: comparison failures after stage 3) 2010-10-11 19:39:37 +00:00
ira.c ira.c (validate_equiv_mem): Remove code to avoid invalidation of readonly memory equivalances for... 2010-11-04 07:15:33 -06:00
ira.h
jump.c
lambda-code.c
lambda-mat.c
lambda-trans.c
lambda.h builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +00:00
langhooks-def.h invoke.texi (-dy): Remove. 2010-11-17 14:31:07 +00:00
langhooks.c invoke.texi (-dy): Remove. 2010-11-17 14:31:07 +00:00
langhooks.h invoke.texi (-dy): Remove. 2010-11-17 14:31:07 +00:00
LANGUAGES
lcm.c
libfuncs.h
libgcc2.c libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE. 2010-10-09 21:12:56 +00:00
libgcc2.h cppbuiltin.c (define_builtin_macros_for_type_sizes): Define __BYTE_ORDER__... 2010-10-23 03:05:47 +00:00
libgcc-libsystem.ver
libgcc-std.ver common.opt (fsplit-stack): New option. 2010-09-27 19:48:20 +00:00
libgcov.c defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef GCC_INSN_FLAGS_H. 2010-11-01 20:38:40 +00:00
limitx.h
limity.h
lists.c
longlong.h
loop-doloop.c
loop-init.c
loop-invariant.c
loop-iv.c
loop-unroll.c loop-unroll.c (analyze_insn_to_expand_var): Accept 2010-11-15 15:20:13 -08:00
loop-unswitch.c
lower-subreg.c re PR middle-end/46292 (FAIL: gcc.c-torture/execute/vector-shift2.c compilation, -O3 -g) 2010-11-04 17:06:45 +01:00
lto-cgraph.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
lto-compress.c
lto-compress.h
lto-opts.c re PR lto/44150 (g++.dg/lto/20081109 cp_lto_20081109_0.o-cp_lto_20081109_1.o) 2010-11-15 09:43:01 +00:00
lto-section-in.c
lto-section-out.c
lto-streamer-in.c lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p. 2010-11-24 15:42:27 +00:00
lto-streamer-out.c cgraph.c (ld_plugin_symbol_resolution_names): New. 2010-11-20 21:10:46 +00:00
lto-streamer.c
lto-streamer.h
lto-symtab.c re PR lto/43218 ([LTO] Conflicting function types cause ICE) 2010-11-24 17:06:41 +00:00
lto-wrapper.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
machmode.def
machmode.h machmode.h (mode_for_vector): Declare. 2010-10-07 14:36:38 +00:00
main.c
Makefile.in re PR tree-optimization/46621 (gimple.h includes tm.h) 2010-11-29 00:50:04 +00:00
matrix-reorg.c
mcf.c
mips-tdump.c
mips-tfile.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
mkconfig.sh
mkmap-flat.awk
mkmap-symver.awk
mode-classes.def
mode-switching.c mode-switching.c (optimize_mode_switching): Use FOR_BB_INSNS instead of open-coded for loop. 2010-11-19 19:56:01 +01:00
modulo-sched.c
omega.c
omega.h
omp-builtins.def re PR middle-end/45838 (FAIL: libgomp.c/pr34513.c execution test) 2010-10-06 09:47:28 +02:00
omp-low.c builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +00:00
ONEWS
opt-functions.awk options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
opt-gather.awk
opt-include.awk Add PowerPC target attribute/pragma support 2010-11-19 17:27:18 +00:00
optabs.c * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly. 2010-11-11 17:10:12 -08:00
optabs.h tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
optc-gen.awk options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
opth-gen.awk options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
opts-common.c options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
opts-diagnostic.h
opts-global.c common.opt (initial_max_fld_align, [...]): New Variable entries. 2010-11-24 00:54:26 +00:00
opts.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
opts.h options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
output.h tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
params.c params.c (params_finished): New. 2010-10-14 11:22:43 +01:00
params.def revert accidentally committed changes 2010-11-24 23:32:29 +00:00
params.h params.c (params_finished): New. 2010-10-14 11:22:43 +01:00
passes.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
plugin.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
plugin.def
plugin.h opts-common.c (handle_option, [...]): Add diagnostic_context parameter. 2010-10-05 15:28:39 +01:00
pointer-set.c
pointer-set.h
postreload-gcse.c
postreload.c re PR middle-end/46297 (gfortran.dg/g77/980701-0.f FAILs with -Os -fno-asynchronous-unwind-tables) 2010-11-18 07:34:29 -07:00
predict.c tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
predict.def
predict.h
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl.c re PR middle-end/45234 (ICE in expand_call, at calls.c:2845 when passing aligned function argument from unaligned stack after alloca) 2010-09-24 16:37:02 +02:00
print-tree.c * print-tree.c (print_node): Print in-constant-pool. 2010-09-27 10:16:44 +00:00
profile.c re PR bootstrap/46528 (profiledbootstrap failure) 2010-11-26 09:49:47 +00:00
profile.h
read-md.c
read-md.h
read-rtl.c
README.Portability
real.c
real.h
realmpfr.c
realmpfr.h
recog.c re PR middle-end/46515 (Many libjava failures) 2010-11-18 13:08:38 -08:00
recog.h target.def (preferred_output_reload_class): New hook. 2010-10-17 19:27:53 +04:00
reg-notes.def
reg-stack.c reg-stack.c (convert_regs_1): Return boolean value, true if the CFG has been modified. 2010-10-24 20:50:20 +00:00
regcprop.c
reginfo.c target.def (conditional_register_usage): Define. 2010-11-22 01:57:50 +00:00
regmove.c
regrename.c optc-gen.awk: Generate global_options initializer instead of individual variables. 2010-09-29 15:49:14 +01:00
regs.h
regset.h
regstat.c
reload1.c revert accidentally committed changes 2010-11-24 23:32:29 +00:00
reload.c target.def (preferred_output_reload_class): New hook. 2010-10-17 19:27:53 +04:00
reload.h
reorg.c
resource.c optc-gen.awk: Generate global_options initializer instead of individual variables. 2010-09-29 15:49:14 +01:00
resource.h Fix typo in the comment. 2010-11-19 01:51:07 +00:00
rtl-error.c
rtl-error.h
rtl.c rtl.h: Include hashtab.h. 2010-10-12 08:24:07 +02:00
rtl.def Add fma support 2010-10-15 17:42:05 +00:00
rtl.h common.opt (initial_max_fld_align, [...]): New Variable entries. 2010-11-24 00:54:26 +00:00
rtlanal.c re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation) 2010-11-16 22:13:52 +00:00
rtlhooks-def.h
rtlhooks.c
sbitmap.c
sbitmap.h
sched-deps.c re PR rtl-optimization/46614 (gcc.dg/vect/vect-strided-u8-i8-gap4.c FAILs with -fno-rename-registers -fsched2-use-superblocks) 2010-11-24 17:56:44 +01:00
sched-ebb.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
sched-int.h Model decoder of Core 2/i7 for multipass scheduling. 2010-11-02 16:02:09 +00:00
sched-rgn.c re PR rtl-optimization/46614 (gcc.dg/vect/vect-strided-u8-i8-gap4.c FAILs with -fno-rename-registers -fsched2-use-superblocks) 2010-11-24 17:56:44 +01:00
sched-vis.c sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE on RTX_FRAME_RELATED_P insns and the insn to which... 2010-10-14 11:59:57 +04:00
sdbout.c godump.c: New file. 2010-11-15 21:38:40 +00:00
sdbout.h
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c re PR rtl-optimization/46585 (ICE: SIGSEGV in vinsn_create (sel-sched-ir.c:1189) with -fno-dce -fschedule-insns -fselective-scheduling) 2010-11-25 13:05:00 +03:00
sel-sched-ir.h sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment. 2010-10-14 11:39:07 +04:00
sel-sched.c re PR rtl-optimization/45652 (gcc.dg/compat/scalar-by-value-3 FAILs with -O2 -fselective-scheduling2) 2010-11-22 13:35:06 +03:00
sel-sched.h
sese.c
sese.h Fix miscompilation of 416.gamess. 2010-09-30 21:21:56 +00:00
simplify-rtx.c tree-vrp.c (extract_range_from_binary_expr): If flag_non_call_exceptions don't eliminate division by zero. 2010-10-23 16:18:32 +00:00
sparseset.c
sparseset.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
sreal.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
sreal.h
ssaexpand.h
stab.def
stack-ptr-mod.c
statistics.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
statistics.h
stmt.c * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p. 2010-11-20 20:56:48 +00:00
stor-layout.c common.opt (initial_max_fld_align, [...]): New Variable entries. 2010-11-24 00:54:26 +00:00
store-motion.c
stringpool.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
sync-builtins.def builtin-attrs.def (ATTR_LEAF): New attribute. 2010-09-28 16:34:36 +00:00
system.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
target-def.h
target-globals.c
target-globals.h
target.def target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
target.h target.h (enum opt_levels, [...]): New. 2010-10-22 13:14:45 +01:00
targhooks.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
targhooks.h target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
timevar.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
timevar.def timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
timevar.h
tlink.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
toplev.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
toplev.h flag-types.h (struct visibility_flags): Don't declare here. 2010-11-24 00:51:48 +00:00
tracer.c
tree-affine.c re PR lto/46664 (Failed to build 481.wrf in SPEC CPU 2006 with LTO) 2010-11-26 12:42:41 +00:00
tree-affine.h
tree-browser.c
tree-browser.def
tree-call-cdce.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-cfg.c re PR debug/46258 (gcc.dg/tree-ssa/pr23820.c: -fcompare-debug failure with -O3 -ffloat-store) 2010-11-26 04:27:24 +00:00
tree-cfgcleanup.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-chrec.c re PR tree-optimization/46077 (ICE in tree vectorization when compiling towns_audio.cpp from scummvm) 2010-11-19 20:56:27 +00:00
tree-chrec.h A function is affine when CHREC_RIGHT is invariant. 2010-09-30 21:18:27 +00:00
tree-complex.c basic-block.h (find_fallthru_edge): Define. 2010-10-21 02:33:33 +00:00
tree-data-ref.c re PR tree-optimization/44913 (-ftree-vectorize causes FAIL: gcc.dg/pr44838.c execution test) 2010-10-14 15:51:15 +00:00
tree-data-ref.h
tree-dfa.c
tree-diagnostic.c
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c re PR middle-end/45172 (internal compiler error: verify_flow_info failed) 2010-11-16 11:42:50 +00:00
tree-emutls.c re PR middle-end/46510 (r166812 breaks bootstrap on x86_64-apple-darwin10) 2010-11-21 23:02:15 +00:00
tree-flow-inline.h basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-flow.h tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare. 2010-10-18 16:44:38 +00:00
tree-if-conv.c Fix PR45971: do not predicate condition phi nodes that are scev analyzable. 2010-11-10 16:06:47 +00:00
tree-inline.c Check preferred vector mode for vector type in estimate_move_cost. 2010-11-10 12:08:27 -08:00
tree-inline.h re PR tree-optimization/40436 (0.5% code size regression caused by r147852) 2010-11-10 02:35:19 +00:00
tree-into-ssa.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c re PR tree-optimization/46355 (ICE: SIGSEGV in create_preheader (cfgloopmanip.c:1336) with -O -fstrict-overflow -ftree-loop-distribution) 2010-11-09 16:54:05 +00:00
tree-loop-linear.c
tree-mudflap.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
tree-mudflap.h
tree-nested.c bootstrap-lto.mk (BOOT_ADAFLAGS): Delete. 2010-11-27 15:53:23 +00:00
tree-nomudflap.c
tree-nrv.c
tree-object-size.c builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +00:00
tree-optimize.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-outof-ssa.c
tree-parloops.c re PR debug/46561 (-fcompare-debug failure (length) with -O2 -ftree-vectorize -ftree-parallelize-loops) 2010-11-20 13:14:48 +01:00
tree-pass.h value-prof.c (gimple_divmod_fixed_value): Work on SSA form. 2010-10-05 10:42:24 +00:00
tree-phinodes.c
tree-predcom.c vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +00:00
tree-pretty-print.c re PR debug/46307 (ICE with FMA_EXPR in DEBUG stmts) 2010-11-05 10:00:50 +01:00
tree-pretty-print.h
tree-profile.c re PR lto/45736 (ICE: in cgraph_remove_unreachable_nodes, at ipa.c:245 with -flto and attribute((constructor))) 2010-10-26 16:40:16 +00:00
tree-scalar-evolution.c Also handle ARRAY_REFs in instantiate_scev_r. 2010-09-30 21:18:48 +00:00
tree-scalar-evolution.h
tree-sra.c re PR tree-optimization/46349 (incorrect scalarization) 2010-11-15 17:32:18 +01:00
tree-ssa-address.c
tree-ssa-alias.c tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work twice. 2010-11-23 09:42:41 +00:00
tree-ssa-alias.h re PR tree-optimization/44913 (-ftree-vectorize causes FAIL: gcc.dg/pr44838.c execution test) 2010-10-14 15:51:15 +00:00
tree-ssa-ccp.c tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks. 2010-11-22 11:19:24 +00:00
tree-ssa-coalesce.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-ssa-copy.c tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops. 2010-11-26 16:51:39 +00:00
tree-ssa-copyrename.c
tree-ssa-dce.c re PR tree-optimization/46498 (ICE: in eliminate_unnecessary_stmts, at tree-ssa-dce.c:1112 with -O -funsafe-math-optimizations -fno-tree-dominator-opts -fno-tree-reassoc) 2010-11-17 10:43:21 +00:00
tree-ssa-dom.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-ssa-dse.c re PR tree-optimization/45970 (tree DSE misses many obvious dead stores) 2010-10-13 13:03:31 +00:00
tree-ssa-forwprop.c re PR tree-optimization/46461 (ICE: invalid argument to gimple call at -O with __builtin_memset()) 2010-11-15 23:30:15 +01:00
tree-ssa-ifcombine.c
tree-ssa-live.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-ssa-live.h
tree-ssa-loop-ch.c
tree-ssa-loop-im.c * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst. 2010-10-31 02:32:20 +00:00
tree-ssa-loop-ivcanon.c
tree-ssa-loop-ivopts.c re PR debug/46150 (-fcompare-debug failure (length) with -fPIC -O2) 2010-11-11 09:09:46 +01:00
tree-ssa-loop-manip.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-ssa-loop-niter.c [multiple changes] 2010-11-29 18:08:16 +01:00
tree-ssa-loop-prefetch.c
tree-ssa-loop-unswitch.c
tree-ssa-loop.c New pass: loop flattening. 2010-09-30 21:20:45 +00:00
tree-ssa-math-opts.c re PR bootstrap/46474 (powerpc64-linux bootstrap comparison failure in libcpp/symtab.o) 2010-11-15 12:04:46 +00:00
tree-ssa-operands.c re PR debug/46307 (ICE with FMA_EXPR in DEBUG stmts) 2010-11-05 10:00:50 +01:00
tree-ssa-operands.h
tree-ssa-phiopt.c re PR tree-optimization/46009 (?: vectorized, very similar if is not) 2010-11-03 16:18:50 +01:00
tree-ssa-phiprop.c
tree-ssa-pre.c re PR tree-optimization/46165 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce) 2010-11-03 11:34:34 +01:00
tree-ssa-propagate.c re PR middle-end/46360 (ICE in release_defs, at tree-ssanames.c:313) 2010-11-09 12:54:32 +01:00
tree-ssa-propagate.h
tree-ssa-reassoc.c re PR tree-optimization/44545 (internal compiler error: in remove_unreachable_handlers, at tree-eh) 2010-11-16 14:15:55 +00:00
tree-ssa-sccvn.c tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work twice. 2010-11-23 09:42:41 +00:00
tree-ssa-sccvn.h
tree-ssa-sink.c
tree-ssa-structalias.c re PR rtl-optimization/46665 (two gfortran tests fail with -O[2s] -fipa-pta -fno-tree-ccp -fno-tree-forwprop) 2010-11-26 14:04:50 +00:00
tree-ssa-ter.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-ssa-threadedge.c
tree-ssa-threadupdate.c
tree-ssa-uncprop.c
tree-ssa-uninit.c uninit var analysis enhancement 2010-10-15 23:16:59 +00:00
tree-ssa.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-ssanames.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-stdarg.c
tree-stdarg.h
tree-switch-conversion.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
tree-tailcall.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
tree-vect-data-refs.c re PR tree-optimization/46190 (ICE in vect_enhance_data_refs_alignment when building fma3d) 2010-11-03 13:30:48 +00:00
tree-vect-generic.c passes.c (init_optimization_passes): Move veclower after SSA. 2010-11-04 10:54:33 +00:00
tree-vect-loop-manip.c re PR tree-optimization/46172 (ICE: in expand_widen_pattern_expr, at optabs.c:522 with -ftree-vectorize -fno-tree-dce) 2010-11-18 15:17:37 +00:00
tree-vect-loop.c re PR tree-optimization/46213 (gfortran.dg/aliasing_array_result_1.f90 ICE: in vectorizable_reduction, at tree-vect-loop.c:4046 with custom compiler flags) 2010-11-04 11:51:09 +00:00
tree-vect-patterns.c re PR tree-optimization/46167 (ICE: SIGSEGV in flow_bb_inside_loop_p (cfgloop.c:776) with -O -ftree-vectorize) 2010-10-26 15:53:28 +00:00
tree-vect-slp.c fold-const.c (build_zero_vector): Use build_vector_from_val. 2010-10-31 02:20:22 +00:00
tree-vect-stmts.c re PR tree-optimization/45733 (ICE: verify_stmts failed: invalid conversion in gimple call with -fstrict-overflow -ftree-vectorize) 2010-11-04 12:42:57 +00:00
tree-vectorizer.c common.opt (user_vect_verbosity_level): New Variable entry. 2010-11-24 13:28:38 +00:00
tree-vectorizer.h common.opt (user_vect_verbosity_level): New Variable entry. 2010-11-24 13:28:38 +00:00
tree-vrp.c Fix PR/46316 2010-11-09 02:01:06 +00:00
tree.c target.def (supports_split_stack, [...]): Take gcc_options parameters. 2010-11-25 13:16:03 +00:00
tree.def tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
tree.h re PR bootstrap/45700 (--enable-checking=fold bootstrap failures) 2010-11-26 10:35:35 +01:00
treestruct.def
tsystem.h
typeclass.h
unwind-c.c
unwind-compat.c
unwind-compat.h
unwind-dw2-fde-compat.c
unwind-dw2-fde-darwin.c
unwind-dw2-fde-glibc.c
unwind-dw2-fde.c
unwind-dw2-fde.h
unwind-dw2.c
unwind-dw2.h
unwind-generic.h
unwind-pe.h
unwind-sjlj.c
unwind.inc
value-prof.c value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt. 2010-11-17 15:56:41 +00:00
value-prof.h
var-tracking.c re PR debug/46387 (ICE in add_stores, at var-tracking.c:5415) 2010-11-15 21:07:39 +01:00
varasm.c tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
varpool.c cgraph.c (ld_plugin_symbol_resolution_names): New. 2010-11-20 21:10:46 +00:00
vec.c
vec.h vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +00:00
vecir.h
vecprim.h
version.c
version.h
vmsdbg.h
vmsdbgout.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
web.c
xcoff.h
xcoffout.c
xcoffout.h

Copyright (C) 2000, 2003 Free Software Foundation, Inc.

This file is intended to contain a few notes about writing C code
within GCC so that it compiles without error on the full range of
compilers GCC needs to be able to compile on.

The problem is that many ISO-standard constructs are not accepted by
either old or buggy compilers, and we keep getting bitten by them.
This knowledge until know has been sparsely spread around, so I
thought I'd collect it in one useful place.  Please add and correct
any problems as you come across them.

I'm going to start from a base of the ISO C90 standard, since that is
probably what most people code to naturally.  Obviously using
constructs introduced after that is not a good idea.

For the complete coding style conventions used in GCC, please read
http://gcc.gnu.org/codingconventions.html


String literals
---------------

Irix6 "cc -n32" and OSF4 "cc" have problems with constant string
initializers with parens around it, e.g.

const char string[] = ("A string");

This is unfortunate since this is what the GNU gettext macro N_
produces.  You need to find a different way to code it.

Some compilers like MSVC++ have fairly low limits on the maximum
length of a string literal; 509 is the lowest we've come across.  You
may need to break up a long printf statement into many smaller ones.


Empty macro arguments
---------------------

ISO C (6.8.3 in the 1990 standard) specifies the following:

If (before argument substitution) any argument consists of no
preprocessing tokens, the behavior is undefined.

This was relaxed by ISO C99, but some older compilers emit an error,
so code like

#define foo(x, y) x y
foo (bar, )

needs to be coded in some other way.


free and realloc
----------------

Some implementations crash upon attempts to free or realloc the null
pointer.  Thus if mem might be null, you need to write

  if (mem)
    free (mem);


Trigraphs
---------

You weren't going to use them anyway, but some otherwise ISO C
compliant compilers do not accept trigraphs.


Suffixes on Integer Constants
-----------------------------

You should never use a 'l' suffix on integer constants ('L' is fine),
since it can easily be confused with the number '1'.


			Common Coding Pitfalls
			======================

errno
-----

errno might be declared as a macro.


Implicit int
------------

In C, the 'int' keyword can often be omitted from type declarations.
For instance, you can write

  unsigned variable;

as shorthand for

  unsigned int variable;

There are several places where this can cause trouble.  First, suppose
'variable' is a long; then you might think

  (unsigned) variable

would convert it to unsigned long.  It does not.  It converts to
unsigned int.  This mostly causes problems on 64-bit platforms, where
long and int are not the same size.

Second, if you write a function definition with no return type at
all:

  operate (int a, int b)
  {
    ...
  }

that function is expected to return int, *not* void.  GCC will warn
about this.

Implicit function declarations always have return type int.  So if you
correct the above definition to

  void
  operate (int a, int b)
  ...

but operate() is called above its definition, you will get an error
about a "type mismatch with previous implicit declaration".  The cure
is to prototype all functions at the top of the file, or in an
appropriate header.

Char vs unsigned char vs int
----------------------------

In C, unqualified 'char' may be either signed or unsigned; it is the
implementation's choice.  When you are processing 7-bit ASCII, it does
not matter.  But when your program must handle arbitrary binary data,
or fully 8-bit character sets, you have a problem.  The most obvious
issue is if you have a look-up table indexed by characters.

For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
true.  But if you read '\341' from a file and store it in a plain
char, isalpha(c) may look up character 225, or it may look up
character -31.  And the ctype table has no entry at offset -31, so
your program will crash.  (If you're lucky.)

It is wise to use unsigned char everywhere you possibly can.  This
avoids all these problems.  Unfortunately, the routines in <string.h>
take plain char arguments, so you have to remember to cast them back
and forth - or avoid the use of strxxx() functions, which is probably
a good idea anyway.

Another common mistake is to use either char or unsigned char to
receive the result of getc() or related stdio functions.  They may
return EOF, which is outside the range of values representable by
char.  If you use char, some legal character value may be confused
with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
The correct choice is int.

A more subtle version of the same mistake might look like this:

  unsigned char pushback[NPUSHBACK];
  int pbidx;
  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
  ...
  unget(EOF);

which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
WITH UMLAUT.


Other common pitfalls
---------------------

o Expecting 'plain' char to be either sign or unsigned extending.

o Shifting an item by a negative amount or by greater than or equal to
  the number of bits in a type (expecting shifts by 32 to be sensible
  has caused quite a number of bugs at least in the early days).

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

o Host vs. target floating point representation, including emitting NaNs
  and Infinities in a form that the assembler handles.

o qsort being an unstable sort function (unstable in the sense that
  multiple items that sort the same may be sorted in different orders
  by different qsort functions).

o Passing incorrect types to fprintf and friends.

o Adding a function declaration for a module declared in another file to
  a .c file instead of to a .h file.