gcc/gcc
Eric Botcazou d16e455d84 function.c (expand_function_end): Set the locator of the prologue on the stack checking insns.
* function.c (expand_function_end): Set the locator of the prologue on
	the stack checking insns.

From-SVN: r166668
2010-11-12 18:17:41 +00:00
..
ada trans.c (gigi): Don't set 'pure' flag on SJLJ routines. 2010-11-10 12:09:46 +00:00
c-family opts.c (warning_as_error_callback, [...]): Remove. 2010-11-11 16:54:49 +00:00
config xtensa: Convert to fma. 2010-11-12 09:53:36 -08:00
cp re PR c++/39415 (static_cast used as downcast can silently lose const) 2010-11-12 13:00:21 -05:00
doc re PR bootstrap/44756 ([meta-bug] --enable-werror-always issues) 2010-11-12 17:11:06 +00:00
fortran re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
ginclude
java cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
lto cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
objc Fixed my email address in 3 of my ChangeLog entries for the past couple of months 2010-11-11 19:01:45 +00:00
objcp In gcc/cp/: 2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com> 2010-10-24 02:44:03 +00:00
po * gcc.pot: Regenerate. 2010-11-10 23:33:06 +00:00
testsuite re PR c++/39415 (static_cast used as downcast can silently lose const) 2010-11-12 13:00:21 -05:00
ABOUT-GCC-NLS
BASE-VER
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog function.c (expand_function_end): Set the locator of the prologue on the stack checking insns. 2010-11-12 18:17:41 +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
DATESTAMP Daily bump. 2010-11-12 00:18:31 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in Makefile.in (gengtype-lex.c): Include bconfig.h first. 2010-11-11 18:44:44 -05:00
ONEWS
README.Portability
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/45834 (Redundant inter-loop edges in DDG) 2010-10-21 15:16:01 +00:00
alias.h
alloc-pool.c
alloc-pool.h
attribs.c
auto-inc-dec.c
basic-block.h Revert revision 164552. 2010-11-03 10:07:04 -07:00
bb-reorder.c
bb-reorder.h
bitmap.c
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 tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00: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/43384 (ICE: Segmentation fault with invalid K&R-like code) 2010-11-06 21:58:50 +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-lang.h (struct lang_type): Add variable_size GTY option. 2010-09-15 03:08:22 +00:00
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 c-parser.c (c_parser_struct_declaration): Handle declaration specifiers followed by CPP_CLOSE_BRACE. 2010-11-10 02:04:13 +00:00
c-tree.h In gcc/: 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> 2010-10-06 10:10:14 +00:00
c-typeck.c builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +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 expr.c (emit_group_load_1): Update calls to extract_bit_field. 2010-10-22 00:40:15 +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 target/43808 (-fipa-reference -fschedule-insns -fstrict-aliasing causes two gfortran check failures) 2010-11-09 20:31:45 +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 cfglayout.c (fixup_reorder_chain): When ensuring that there is at least one insn with a locus corresponding to an... 2010-10-24 07:45:26 +00: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 basic-block.h (insert_insn_end_bb_new): Delete. 2010-11-02 19:31:59 +00:00
cgraph.c re PR tree-optimization/46228 (code produced for STL container is worse in 4.5.1 than in 4.4.5) 2010-11-10 20:10:46 +00:00
cgraph.h 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
cgraphbuild.c * cgraphbuild.c (build_cgraph_edges): Use ipa-reference to represent OMP. 2010-10-26 22:32:47 +00:00
cgraphunit.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00:00
cif-code.def
collect2-aix.c
collect2-aix.h
collect2.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00:00
collect2.h
combine-stack-adj.c common.opt: Add -fcombine-stack-adjustments. 2010-10-01 12:48:50 +00:00
combine.c combine.c (try_combine): Fix formatting issues, improve comments and fix a pasto. 2010-11-03 17:53:51 +00:00
common.opt re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
conditions.h
config.build
config.gcc xtensa: Convert to fma. 2010-11-12 09:53:36 -08:00
config.host config.host: Update copyright year. 2010-10-07 21:04:47 +00:00
config.in configure.ac: Test assembler support for DSP Rev1 mult. 2010-11-05 00:26:14 +00:00
configure configure.ac: Test assembler support for DSP Rev1 mult. 2010-11-05 00:26:14 +00:00
configure.ac configure.ac: Test assembler support for DSP Rev1 mult. 2010-11-05 00:26:14 +00:00
convert.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
convert.h
coretypes.h Move enum unwind_info_type from target.h to coretypes.h. 2010-10-07 13:03:13 -07:00
coverage.c
coverage.h
cppbuiltin.c cppbuiltin.c (define_builtin_macros_for_type_sizes): Define __BYTE_ORDER__... 2010-10-23 03:05:47 +00:00
cppbuiltin.h cppbuiltin.c: New file. 2010-10-03 19:00:55 +00:00
cppdefault.c
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 rtl.def (DEBUG_IMPLICIT_PTR): New rtl code. 2010-09-09 08:43:47 +02:00
cselib.h
cstamp-h.in
dbgcnt.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
dbgcnt.def
dbgcnt.h
dbxout.c re PR c++/44561 (using nullptr_t with -flto/-fwhopr causes ICE: tree code 'lang_type' is not supported in gimple streams) 2010-10-14 11:59:47 +00:00
dbxout.h
dce.c
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
debug.h
defaults.h defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG, [...]): Remove. 2010-11-05 13:06:27 +00:00
df-core.c Revert revision 164552. 2010-11-03 10:07:04 -07:00
df-problems.c re PR debug/46171 (ICE: in gen_rtx_SUBREG, at emit-rtl.c:774 with -fno-tree-dce -g) 2010-11-09 20:04:44 +01:00
df-scan.c vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +00:00
df.h Revert revision 164552. 2010-11-03 10:07:04 -07: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 Fix PR/46316 2010-11-09 02:01:06 +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 re PR debug/46241 (ice in dwarf2out.c) 2010-11-03 13:31:40 +00:00
dwarf2out.h
ebitmap.c
ebitmap.h
emit-rtl.c re PR debug/46375 (-fcompare-debug failure (length) with -O -fgcse -fno-tree-dominator-opts) 2010-11-12 09:57:20 +00:00
emit-rtl.h
emutls.c
errors.c
errors.h
et-forest.c et-forest.c (et_nca): Return NULL immediately when the dominance forest has disjoint components. 2010-10-14 11:08:45 +04:00
et-forest.h
except.c Hookize TARGET_UNWIND_INFO et al. 2010-09-28 13:44:58 -07:00
except.h
exec-tool.in Support '-plugin' as the second option to the linker. 2010-10-12 09:40:39 -07: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 re PR middle-end/46388 (ICE in int_mode_for_mode, at stor-layout.c:493) 2010-11-11 16:48:39 +01: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 tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
flags.h common.opt (flag_excess_precision_cmdline, [...]): New Variable declarations. 2010-11-10 22:35:13 +00:00
fold-const.c tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
fp-test.c
function.c function.c (expand_function_end): Set the locator of the prologue on the stack checking insns. 2010-11-12 18:17:41 +00:00
function.h
fwprop.c fwprop.c (forward_propagate_and_simplify): Only attach a REG_EQUAL note to an insn if the destination is a register. 2010-09-13 14:18:31 +00:00
gbl-ctors.h
gcc-plugin.h
gcc.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00:00
gcc.h
gccspec.c
gcov-dump.c
gcov-io.c
gcov-io.h
gcov-iov.c
gcov.c
gcse.c re PR tree-optimization/46183 (ICE: in calc_dfs_tree, at dominance.c:396 with -O -fno-dse -fgcse -ftree-pre) 2010-11-04 15:19:19 +00: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 Call get_input_file_name to get file name. 2010-11-09 05:14:48 -08:00
gengtype.c gengtype.c (get_output_file_name): Declaration moved to gengtype.h. 2010-11-09 07:36:26 +00:00
gengtype.h gengtype.c (get_output_file_name): Declaration moved to gengtype.h. 2010-11-09 07:36:26 +00:00
genhooks.c
genmddeps.c
genmodes.c tm.texi.in (OVERRIDE_OPTIONS): Remove documentation. 2010-09-16 12:59:39 +01:00
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.h
ggc-common.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
ggc-internal.h
ggc-none.c
ggc-page.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
ggc-zone.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
ggc.h
gimple-fold.c builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +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 tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
gimple-pretty-print.h
gimple.c tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
gimple.def
gimple.h gimple.h (gimple_register_canonical_type): Declare. 2010-10-22 17:50:19 +00:00
gimplify.c re PR middle-end/43690 (Internal compiler error detected by avr-gcc.) 2010-11-05 12:11:50 +01:00
glimits.h
graph.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +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 Enable graphite to read an OpenScop file. 2010-09-30 21:17:12 +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-posix.c
gthr-posix.h
gthr-posix95.h
gthr-rtems.h
gthr-single.h
gthr-solaris.h
gthr-tpf.h
gthr-vxworks.h
gthr-win32.h
gthr.h
haifa-sched.c re PR bootstrap/44756 ([meta-bug] --enable-werror-always issues) 2010-11-05 16:27:25 +00:00
hard-reg-set.h
highlev-plugin-common.h
hooks.c target.def (target_option.init_struct): New hook. 2010-10-15 20:19:05 +01:00
hooks.h target.def (target_option.init_struct): New hook. 2010-10-15 20:19:05 +01:00
host-default.c
hosthooks-def.h
hosthooks.h
hwint.h
ifcvt.c re PR bootstrap/44756 ([meta-bug] --enable-werror-always issues) 2010-11-04 14:58:40 +00:00
implicit-zee.c
incpath.c incpath.c (remove_duplicates): If name is not a directory, issue a warning rather than an error. 2010-09-15 17:27:24 +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 invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00:00
ipa-prop.h tree-sra.c (build_ref_for_offset): Loc made a parameter. 2010-09-14 16:09:38 +02:00
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
ipa-type-escape.h
ipa-utils.c
ipa-utils.h
ipa.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00: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 target.def (target_option.init_struct): New hook. 2010-10-15 20:19:05 +01:00
langhooks.c target.def (target_option.init_struct): New hook. 2010-10-15 20:19:05 +01:00
langhooks.h Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h. 2010-10-08 16:17:32 +01:00
lcm.c
libfuncs.h
libgcc-libsystem.ver
libgcc-std.ver common.opt (fsplit-stack): New option. 2010-09-27 19:48:20 +00:00
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
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-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 opts-common.c (handle_option, [...]): Add diagnostic_context parameter. 2010-10-05 15:28:39 +01:00
lto-section-in.c
lto-section-out.c
lto-streamer-in.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
lto-streamer-out.c lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than assembling high and low parts of size if... 2010-11-11 13:29:46 +00:00
lto-streamer.c tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL is TS_TRANSLATION_UNIT_DECL. 2010-09-16 09:38:13 +00:00
lto-streamer.h tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL is TS_TRANSLATION_UNIT_DECL. 2010-09-16 09:38:13 +00:00
lto-symtab.c re PR lto/46376 (LTO, MinGW and virtual base classes don't work together) 2010-11-12 10:06:37 +01:00
lto-wrapper.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +00:00
machmode.def tm.texi.in (OVERRIDE_OPTIONS): Remove documentation. 2010-09-16 12:59:39 +01:00
machmode.h machmode.h (mode_for_vector): Declare. 2010-10-07 14:36:38 +00:00
main.c
matrix-reorg.c
mcf.c
mips-tdump.c
mips-tfile.c
mkconfig.sh
mkmap-flat.awk
mkmap-symver.awk
mode-classes.def
mode-switching.c
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
opt-functions.awk defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG, [...]): Remove. 2010-11-05 13:06:27 +00:00
opt-gather.awk
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 Fix PR bootstrap/35855: awk character classes. 2010-10-11 17:58:53 +00:00
opth-gen.awk flag-types.h: New. 2010-10-12 12:25:16 +01:00
opts-common.c opts-common.c (decode_cmdline_option): Initialize separate_args. 2010-11-12 16:36:36 +00:00
opts-diagnostic.h
opts.c re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
opts.h opts.c (warning_as_error_callback, [...]): Remove. 2010-11-11 16:54:49 +00:00
output.h re PR middle-end/46314 (frontends use ASM_GENERATE_INTERNAL_LABEL) 2010-11-06 15:04:52 +00:00
params.c params.c (params_finished): New. 2010-10-14 11:22:43 +01:00
params.def invoke.texi (early-inlining-insns): Update default. 2010-11-12 16:29:10 +00:00
params.h params.c (params_finished): New. 2010-10-14 11:22:43 +01:00
passes.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +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 target/40457 (use stm and ldm to access consecutive memory words) 2010-09-29 20:06:55 +00:00
predict.c re PR tree-optimization/46288 (ICE: SIGSEGV in walk_gimple_op (gimple.c:2857) with -O -fno-tree-dce and __builtin_expect()) 2010-11-03 16:58:50 +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
profile.h
read-md.c
read-md.h
read-rtl.c
real.c
real.h
realmpfr.c
realmpfr.h
recog.c recog.c (split_all_insns): Remove dead code. 2010-10-28 21:20:01 +00: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 reginfo.c (fix_register): Avoid inserting English word in diagnostic sentence. 2010-11-11 18:28:46 +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
reload.c target.def (preferred_output_reload_class): New hook. 2010-10-17 19:27:53 +04:00
reload.h
reload1.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
reorg.c re PR rtl-optimization/45593 (segfault with -Os) 2010-09-15 22:48:00 +00:00
resource.c optc-gen.awk: Generate global_options initializer instead of individual variables. 2010-09-29 15:49:14 +01:00
resource.h
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 rtl.h: Include hashtab.h. 2010-10-12 08:24:07 +02:00
rtlanal.c re PR target/40457 (use stm and ldm to access consecutive memory words) 2010-09-29 20:06:55 +00:00
rtlhooks-def.h
rtlhooks.c
sbitmap.c
sbitmap.h
sched-deps.c sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke may_trap_or_fault_p instead of may_trap_p predicate. 2010-10-14 13:39:18 +00: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 basic-block.h (find_fallthru_edge): Define. 2010-10-21 02:33:33 +00: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 re PR c++/44561 (using nullptr_t with -flto/-fwhopr causes ICE: tree code 'lang_type' is not supported in gimple streams) 2010-10-14 11:59:47 +00:00
sdbout.h
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c basic-block.h (find_fallthru_edge): Define. 2010-10-21 02:33:33 +00: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/45352 (ICE: in reset_sched_cycles_in_current_ebb, at sel-sched.c:7058) 2010-11-08 11:11:38 +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
sreal.c
sreal.h
ssaexpand.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c re PR rtl-optimization/46226 (asm goto may leave stack pointer invalid) 2010-10-29 09:56:18 -07:00
stor-layout.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
store-motion.c
stringpool.c
sync-builtins.def builtin-attrs.def (ATTR_LEAF): New attribute. 2010-09-28 16:34:36 +00:00
system.h tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove. 2010-11-10 12:40:51 +00:00
target-def.h
target-globals.c
target-globals.h
target.def re PR middle-end/46314 (frontends use ASM_GENERATE_INTERNAL_LABEL) 2010-11-06 15:04:52 +00:00
target.h target.h (enum opt_levels, [...]): New. 2010-10-22 13:14:45 +01:00
targhooks.c re PR bootstrap/44335 (gcc-4.6-20100529 java bootstrap failure on arm-linux-gnueabi) 2010-11-03 10:45:40 +00:00
targhooks.h re PR bootstrap/44335 (gcc-4.6-20100529 java bootstrap failure on arm-linux-gnueabi) 2010-11-03 10:45:40 +00:00
timevar.c
timevar.def
timevar.h
tlink.c
toplev.c cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
toplev.h common.opt (flag_excess_precision_cmdline, [...]): New Variable declarations. 2010-11-10 22:35:13 +00:00
tracer.c
tree-affine.c
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 cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
tree-cfgcleanup.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-chrec.c
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/45854 (ICE in redirect_eh_edge_1, at tree-eh.c:2131) 2010-10-01 12:07:47 +00:00
tree-emutls.c
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 tree-into-ssa.c (rewrite_update_enter_block): Remove unused variables. 2010-10-21 14:05:57 +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
tree-mudflap.h
tree-nested.c tree-nested.c (build_addr): Use build_fold_addr_expr. 2010-11-04 15:15:39 +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 tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges if there is a call statement to pure or const... 2010-10-20 17:30:10 +00:00
tree-outof-ssa.c
tree-parloops.c re PR tree-optimization/46099 (ICE: in replace_ssa_name, at tree-cfg.c:5643 with -ftree-parallelize-loops -g) 2010-11-05 12:15:28 +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/46351 (incorrect scalarization (2)) 2010-11-10 13:52:27 +01:00
tree-ssa-address.c
tree-ssa-alias.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-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 re PR tree-optimization/45919 (ICE: SIGSEGV in fold_ctor_reference (tree-ssa-ccp.c:1527) at -O1) 2010-10-20 23:17:30 +02: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 builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +00:00
tree-ssa-copyrename.c
tree-ssa-dce.c
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/46346 (fma testsuite failures) 2010-11-07 18:49:11 +01:00
tree-ssa-ifcombine.c
tree-ssa-live.c vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +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 re PR tree-optimization/45605 (Missed devirtualization) 2010-09-20 15:48:42 +00:00
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
tree-ssa-loop-niter.c
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 tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify that the target has the exact fma operation that we matched. 2010-11-11 10:42:35 -08: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 builtins.c (fold_builtin_signbit): Use build_zero_cst instead of fold_convert. 2010-11-03 00:49:00 +00:00
tree-ssa-sccvn.c re PR tree-optimization/46398 (early FRE miscompiles simple testcase) 2010-11-10 10:59:20 +00:00
tree-ssa-sccvn.h
tree-ssa-sink.c re PR tree-optimization/33244 (Missed opportunities for vectorization) 2010-09-08 12:34:52 +00:00
tree-ssa-structalias.c re PR tree-optimization/46286 (ICE in do_complex_constraint, at tree-ssa-structalias.c:1882) 2010-11-03 12:20:28 +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 cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
tree-ssanames.c tree-ssanames.c (release_dead_ssa_names): Do not remove callee edges here. 2010-09-22 12:15:56 +00:00
tree-stdarg.c
tree-stdarg.h
tree-switch-conversion.c
tree-tailcall.c tree-tailcall.c (find_tail_calls): Convert the operands to the type of the result before building binary expressions. 2010-11-03 17:33:31 +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 middle-end/45720 (Revision 164367 miscompiled SPEC CPU 2K) 2010-10-22 14:44:48 +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 tree-vectorizer.c: Fix documentation. 2010-09-16 10:35:14 +00:00
tree-vectorizer.h re PR tree-optimization/46049 (ICE: in expand_widen_pattern_expr, at optabs.c:522 with -ftree-vectorize) 2010-10-21 13:36:56 +00:00
tree-vrp.c Fix PR/46316 2010-11-09 02:01:06 +00:00
tree.c re PR tree-optimization/46383 (ICE: in get_binfo_at_offset, at tree.c:10947) 2010-11-11 13:03:59 +01:00
tree.def tree.def (FMA_EXPR): New tree code. 2010-11-04 10:56:22 +00:00
tree.h common.opt (flag_excess_precision_cmdline, [...]): New Variable declarations. 2010-11-10 22:35:13 +00:00
treestruct.def tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL is TS_TRANSLATION_UNIT_DECL. 2010-09-16 09:38:13 +00:00
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 cfgloop.c (verify_loop_structure): Use %' in diagnostics. 2010-11-10 23:23:15 +00:00
value-prof.h
var-tracking.c re PR rtl-optimization/46433 (var-tracking.c doesn't include tm_p.h) 2010-11-12 13:20:28 +00:00
varasm.c re PR middle-end/46221 (huge number of c++ testsuite failures, libstdc++.so alias missing) 2010-11-09 10:36:24 +00:00
varpool.c invoke.texi (-fwhopr): Merge into -flto section. 2010-11-11 22:54:53 +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
web.c
xcoff.h
xcoffout.c
xcoffout.h

README.Portability

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.