gcc/gcc
Vladimir Makarov f7abdf36e5 re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode)
2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR tree-optimization/77856
	* lra-constraints.c (inherit_in_ebb): Check original regno for
	invalid invariant regs too.  Set only clobbered hard regs for the
	invalid invariant regs.

2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR tree-optimization/77856
	* gcc.target/i386.c (pr77856.c): New.

From-SVN: r243038
2016-11-30 17:35:40 +00:00
..
ada [multiple changes] 2016-11-30 14:59:16 +01:00
c re PR c++/71973 (c++ handles built-in functions inconsistently) 2016-11-21 14:17:05 +00:00
c-family tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node. 2016-11-26 10:41:55 +00:00
common arc-common.c (arc_handle_option): Remove unused variables. 2016-11-29 21:37:10 -07:00
config Commit files forgotten in r242966. 2016-11-30 15:07:37 +00:00
cp spellcheck bugfixes: don't offer the goal string as a suggestion 2016-11-29 16:25:01 +00:00
doc Remove stray character from install.texi 2016-11-30 01:23:44 +00:00
fortran libcaf.h: Add new action types for (de-)registration of allocatable components in derived... 2016-11-30 14:27:49 +01:00
ginclude [Patch 6/17] Migrate excess precision logic to use TARGET_EXCESS_PRECISION 2016-11-23 17:23:12 +00:00
go runtime: fixes for -buildmode=c-archive 2016-11-30 02:09:24 +00:00
jit
lto re PR lto/78562 (Wrong warning for built-in functions with -flto) 2016-11-30 11:08:37 +00:00
objc Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. 2016-11-14 13:51:48 +00:00
objcp ChangeLog formatting fixes. 2016-09-05 21:42:42 +02:00
po * es.po, fr.po: Update. 2016-11-29 00:45:40 +00:00
testsuite re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode) 2016-11-30 17:35:40 +00:00
ABOUT-GCC-NLS
BASE-VER
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode) 2016-11-30 17:35:40 +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-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
DATESTAMP Daily bump. 2016-11-30 00:16:19 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
ONEWS
README.Portability
acinclude.m4 remove conditional compilation of HAVE_AS_LEB128 code 2016-11-14 10:58:48 +00:00
aclocal.m4
addresses.h
alias.c Use simplify_gen_binary in canon_rtx 2016-11-15 18:16:59 +00:00
alias.h
alloc-pool.c
alloc-pool.h
asan.c Support nested functions (PR sanitizer/78541). 2016-11-30 09:26:51 +00:00
asan.h asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN, BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR. 2016-11-09 00:16:58 +02:00
attribs.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
attribs.h
auto-inc-dec.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
auto-profile.c Print indirect call changes in afdo dump file 2016-07-14 02:13:48 +00:00
auto-profile.h
backend.h
basic-block.h
bb-reorder.c bb-reorder: Improve compgotos pass (PR71785) 2016-11-18 10:14:52 +01:00
bb-reorder.h
bitmap.c bitmap.c (bitmap_elem_to_freelist): Set indx to -1. 2016-10-07 10:06:24 +00:00
bitmap.h bitmap.h: Document constraints on bitmap modification while iterating over it. 2016-10-07 11:26:15 +00:00
bt-load.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
builtin-attrs.def re PR tree-optimization/78154 (memcpy et al can be assumed to return non-null) 2016-11-23 10:52:25 +00:00
builtin-types.def re PR c++/71973 (c++ handles built-in functions inconsistently) 2016-11-21 14:17:05 +00:00
builtins.c i386.md (cmpstrnsi): New test to bail out if neither string input is a string constant. 2016-11-17 12:58:16 -06:00
builtins.def backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
builtins.h Fold __builtin_memchr function 2016-10-14 12:09:51 +00:00
caller-save.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
calls.c [Patch] New hook TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable SSP runtime 2016-11-29 11:47:48 +00:00
calls.h 016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 2016-07-21 19:06:02 +00:00
ccmp.c make targetm.gen_ccmp{first,next} take rtx_insn ** 2016-11-03 09:27:55 +00:00
ccmp.h
cfg-flags.def
cfg.c Use FOR_ALL_BB_FN in a few more places 2016-10-18 21:36:45 +02:00
cfg.h cfg.c (reset_original_copy_tables): New func. 2016-10-13 10:52:00 +00:00
cfganal.c use auto_sbitmap in various places 2016-07-26 10:44:08 +00:00
cfganal.h
cfgbuild.c make LABEL_REF_LABEL a rtx_insn * 2016-10-21 12:32:56 +00:00
cfgbuild.h
cfgcleanup.c make tablejump_p return the label as a rtx_insn * 2016-10-21 12:33:01 +00:00
cfgcleanup.h
cfgexpand.c [Patch] New hook TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable SSP runtime 2016-11-29 11:47:48 +00:00
cfgexpand.h
cfghooks.c tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p. 2016-08-05 07:41:45 +00:00
cfghooks.h
cfgloop.c cfgloop.h (struct loop): New field constraints. 2016-07-29 15:44:00 +00:00
cfgloop.h make next/prev nondebug_insn take rtx_insn * 2016-09-22 13:16:23 +00:00
cfgloopanal.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
cfgloopmanip.c re PR tree-optimization/71595 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704) 2016-11-24 12:25:22 +00:00
cfgloopmanip.h re PR tree-optimization/71595 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704) 2016-11-24 12:25:22 +00:00
cfgrtl.c make delete_insn () take a rtx_insn * 2016-11-21 06:15:58 +00:00
cfgrtl.h make delete_insn () take a rtx_insn * 2016-11-21 06:15:58 +00:00
cgraph.c Introduce -fdump-ipa-clones dump output 2016-11-30 09:28:19 +00:00
cgraph.h Introduce -fdump-ipa-clones dump output 2016-11-30 09:28:19 +00:00
cgraphbuild.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
cgraphclones.c Introduce -fdump-ipa-clones dump output 2016-11-30 09:28:19 +00:00
cgraphunit.c cgraphunit.c (analyze_functions): Set node->definition to false to signal symbol removal to... 2016-10-20 08:49:48 +00:00
chkp-builtins.def
cif-code.def
cilk-builtins.def
cilk-common.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
cilk.h
cilkplus.def
collect-utils.c
collect-utils.h
collect2-aix.c
collect2-aix.h
collect2.c
collect2.h
combine-stack-adj.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
combine.c combine: Don't mess with subregs of floating point (PR78590) 2016-11-30 09:24:59 +01:00
common.md
common.opt common.opt (flimit-function-alignment): New. 2016-11-24 12:54:56 +00:00
compare-elim.c use rtx_insn * in various places where it is obvious 2016-11-02 03:44:50 +00:00
conditions.h
config.build
config.gcc Add multilib support for embedded bare-metal targets 2016-11-22 14:01:57 +00:00
config.host configure.ac: Add aarch64-*-freebsd*. 2016-10-10 23:31:17 +02:00
config.in [Darwin] fix PR67710 by updating 'as' specs to handle newer assembler versions. 2016-11-27 15:07:22 +00:00
configure [Darwin, config] Fix version number extraction to portable method 2016-11-28 10:29:19 +00:00
configure.ac [Darwin, config] Fix version number extraction to portable method 2016-11-28 10:29:19 +00:00
context.c
context.h
convert.c Implement -Wimplicit-fallthrough. 2016-09-26 09:42:50 +00:00
convert.h
coretypes.h [Patch 1/17] Add a new target hook for describing excess precision intentions 2016-11-23 17:14:07 +00:00
coverage.c Don't use priority {cd}tors if not supported by a target (PR 2016-11-25 14:23:25 +00:00
coverage.h
cppbuiltin.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c Use df_read_modify_subreg_p in cprop.c 2016-11-16 13:07:08 +00:00
cse.c Add a load_extend_op wrapper 2016-11-15 18:13:56 +00:00
cselib.c make LABEL_REF_LABEL a rtx_insn * 2016-10-21 12:32:56 +00:00
cselib.h
cstamp-h.in
data-streamer-in.c data-streamer-in.c (streamer_read_wide_int): New. 2016-08-06 21:11:26 +00:00
data-streamer-out.c data-streamer-in.c (streamer_read_wide_int): New. 2016-08-06 21:11:26 +00:00
data-streamer.c
data-streamer.h data-streamer-in.c (streamer_read_wide_int): New. 2016-08-06 21:11:26 +00:00
dbgcnt.c
dbgcnt.def use-after-scope fallout 2016-11-08 12:28:33 +00:00
dbgcnt.h
dbxout.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
dbxout.h
dce.c Use MEM_SIZE rather than GET_MODE_SIZE in dce.c 2016-11-15 18:18:08 +00:00
dce.h
ddg.c use auto_sbitmap in various places 2016-07-26 10:44:08 +00:00
ddg.h
debug.c debug.h (gcc_debug_hooks): Add filename parameter to early_finish hook. 2016-09-20 07:37:53 +00:00
debug.h debug.h (gcc_debug_hooks): Add filename parameter to early_finish hook. 2016-09-20 07:37:53 +00:00
defaults.h [Patch 7/17] Delete TARGET_FLT_EVAL_METHOD and poison it. 2016-11-23 17:24:28 +00:00
df-core.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
df-problems.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
df-scan.c df: Change defs in entry and uses in exit block during separate shrink-wrapping 2016-11-16 16:23:36 +01:00
df.h df: Change defs in entry and uses in exit block during separate shrink-wrapping 2016-11-16 16:23:36 +01:00
dfp.c
dfp.h
diagnostic-color.c Introduce class edit_context 2016-09-02 18:00:57 +00:00
diagnostic-color.h
diagnostic-core.h diagnostic-core.h (warning_at_rich_loc_n): Declare. 2016-10-08 17:04:35 +00:00
diagnostic-show-locus.c fix-it hints can't contain newlines 2016-09-15 23:57:01 +00:00
diagnostic.c revert: diagnostic.c (diagnostic_action_after_output): Remove max error handling here .... 2016-10-15 11:08:10 +00:00
diagnostic.def
diagnostic.h Add -fdiagnostics-generate-patch 2016-09-02 19:41:17 +00:00
dojump.c dojump.c (do_jump_by_parts_greater_rtx): Invert probability when swapping the arms of the branch. 2016-10-28 18:10:14 +00:00
dojump.h
dominance.c Update dom_info 2016-10-17 11:05:12 -07:00
dominance.h Update dom_info 2016-10-17 11:05:12 -07:00
domwalk.c domwalk.c (dom_walker::walk): Use RPO order. 2016-10-19 08:39:55 +00:00
domwalk.h
double-int.c hwint.h (HOST_WIDE_INT_0): New define. 2016-07-20 23:59:44 +02:00
double-int.h cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0. 2016-07-20 17:47:33 +02:00
dse.c re PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstringop-strategy=libcall) 2016-11-07 18:35:16 +01:00
dumpfile.c Introduce -fdump-ipa-clones dump output 2016-11-30 09:28:19 +00:00
dumpfile.h Introduce -fdump-ipa-clones dump output 2016-11-30 09:28:19 +00:00
dwarf2asm.c remove conditional compilation of HAVE_AS_LEB128 code 2016-11-14 10:58:48 +00:00
dwarf2asm.h dwarf2asm.h (dw2_asm_output_offset): Add overload with extra offset argument. 2016-09-15 10:22:32 +00:00
dwarf2cfi.c dwarf2cfi: Dump row differences before asserting 2016-11-10 18:43:02 +01:00
dwarf2out.c re PR debug/78191 (ICE in calc_die_sizes) 2016-11-18 22:55:46 +01:00
dwarf2out.h dwarf2out.h (struct dw_loc_descr_node): Adjust comment for frame_offset_rel bit. 2016-10-31 20:35:47 +01:00
edit-context.c fix-it hints: insert_before vs insert_after 2016-09-13 16:08:59 +00:00
edit-context.h Introduce class edit_context 2016-09-02 18:00:57 +00:00
emit-rtl.c emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of reset_used_flags. 2016-11-30 14:02:48 +01:00
emit-rtl.h common.opt (flimit-function-alignment): New. 2016-11-24 12:54:56 +00:00
errors.c
errors.h
et-forest.c Selftest framework 2016-06-06 17:11:30 +00:00
et-forest.h
except.c remove conditional compilation of HAVE_AS_LEB128 code 2016-11-14 10:58:48 +00:00
except.h
exec-tool.in
explow.c Re-apply: Drop excess size used for run time allocated stack variables. 2016-11-18 14:44:54 +00:00
explow.h Allocate constant size dynamic stack space in the prologue 2016-07-18 13:10:27 +00:00
expmed.c re PR middle-end/78416 (wrong code for division by (u128)~INT64_MAX at -O0) 2016-11-22 11:14:21 +01:00
expmed.h Fix warnings for make profiledbootstrap (PR bootstrap/77788) 2016-10-06 07:33:49 +00:00
expr.c make recog () take a rtx_insn * 2016-11-21 06:15:08 +00:00
expr.h expr.h (copy_blkmode_from_reg): Delete. 2016-11-04 17:44:48 +00:00
fibonacci_heap.c Add selftests for fibonacci_heap 2016-07-20 07:01:48 +00:00
fibonacci_heap.h Add selftests for fibonacci_heap 2016-07-20 07:01:48 +00:00
file-find.c Prevent LTO wrappers to process a recursive execution 2016-07-07 12:03:39 +00:00
file-find.h Prevent LTO wrappers to process a recursive execution 2016-07-07 12:03:39 +00:00
final.c common.opt (flimit-function-alignment): New. 2016-11-24 12:54:56 +00:00
fixed-value.c auto-inc-dec.c (try_merge): Remove break after return. 2016-09-27 20:14:10 +02:00
fixed-value.h
flag-types.h [Patch 5/17] Add -fpermitted-flt-eval-methods=[c11|ts-18661-3] 2016-11-23 17:20:37 +00:00
flags.h
fold-const-call.c * fold-const-call.c (fold_const_call): Fix up type of s0 and s1. 2016-11-09 18:55:12 +01:00
fold-const-call.h Fold __builtin_str{n}{case}cmp functions 2016-10-14 12:08:27 +00:00
fold-const.c fold-const.c (fold_cond_expr_with_comparison): Move simplification for A == C1 ? A : C2 to below. 2016-11-23 12:47:31 +00:00
fold-const.h fold-const.c (tree_expr_nonzero_p): Make non-static. 2016-11-23 10:29:18 +00:00
fp-test.c
function-tests.c Add a "compact" mode to print_rtx_function 2016-10-13 13:17:59 +00:00
function.c [Patch] New hook TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable SSP runtime 2016-11-29 11:47:48 +00:00
function.h Tweak LRA handling of shared spill slots 2016-11-25 08:23:08 +00:00
fwprop.c Add a load_extend_op wrapper 2016-11-15 18:13:56 +00:00
gcc-ar.c gcc-ar.c (main): Fix indentation. 2016-11-22 18:44:08 +00:00
gcc-main.c
gcc-plugin.h
gcc-rich-location.c rich_location: add convenience overloads for adding fix-it hints 2016-08-30 13:54:48 +00:00
gcc-rich-location.h rich_location: add convenience overloads for adding fix-it hints 2016-08-30 13:54:48 +00:00
gcc-symtab.h
gcc.c Introduce -fprofile-update=prefer-atomic 2016-11-14 12:09:48 +00:00
gcc.h
gcov-counter.def Remove __gcov_merge_delta (PR bootstrap/77749) 2016-09-27 10:04:39 +00:00
gcov-dump.c
gcov-io.c gcc-ar.c (main): Fix indentation. 2016-11-22 18:44:08 +00:00
gcov-io.h Do not use LONG_LONG_TYPE_SIZE in #if macro condition 2016-08-17 06:55:35 +00:00
gcov-iov.c Adapt the numbering scheme (PR gcov-profile/64874) 2016-07-25 08:42:42 +00:00
gcov-tool.c re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) 2016-08-12 10:30:47 +00:00
gcov.c gcov: add new option (--hash-filenames) (PR 2016-08-16 14:14:18 +00:00
gcse-common.c
gcse-common.h
gcse.c make LABEL_REF_LABEL a rtx_insn * 2016-10-21 12:32:56 +00:00
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by increment rather than double it. 2016-10-26 18:20:54 +02:00
genattr-common.c
genattr.c
genattrtab.c genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects. 2016-11-15 22:10:37 +00:00
genautomata.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
gencfn-macros.c
gencheck.c
genchecksum.c
gencodes.c
genconditions.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
genconfig.c make LABEL_REF_LABEL a rtx_insn * 2016-10-21 12:32:56 +00:00
genconstants.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
genemit.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
genenums.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
generic-match-head.c
generic-match.h
genextract.c genextract.c: add [cd]tors to accum_extract 2016-07-13 02:43:23 +00:00
genflags.c
gengenrtl.c
gengtype-lex.l
gengtype-parse.c
gengtype-state.c
gengtype.c gengtype.c (new_structure): Append to structures list. 2016-11-10 11:49:08 -05:00
gengtype.h
genhooks.c
genmatch.c fold-const.c (tree_swap_operands_p): Remove unused arg. 2016-11-09 15:15:28 +00:00
genmddeps.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
genmddump.c
genmodes.c Enable AVX512_4FMAPS and AVX512_4VNNIW instructions 2016-11-17 14:11:21 -08:00
genmultilib fragments.texi (MULTILIB_REUSE): Mention that only options in MULTILIB_OPTIONS should be used. 2016-08-24 09:51:35 +00:00
genopinit.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
genoutput.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
genpeep.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
genpreds.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
genrecog.c make recog () take a rtx_insn * 2016-11-21 06:15:08 +00:00
gensupport.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
gensupport.h Introduce class rtx_reader 2016-09-21 20:55:06 +00:00
gentarget-def.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ggc-tests.c Expose forcibly_ggc_collect and run it after all selftests 2016-10-25 16:46:54 +00:00
ggc.h
gimple-builder.c Makefile.in: Add tree-vrp.h to GTFILES. 2016-08-20 05:43:01 +00:00
gimple-builder.h
gimple-expr.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
gimple-expr.h
gimple-fold.c gimple-fold.c (fold_stmt_1): Check may_propagate_copy before valueizing return stmts. 2016-11-25 11:40:30 +00:00
gimple-fold.h PR middle-end/49905 - Better sanity checking on sprintf src & dest to 2016-09-20 19:39:27 -06:00
gimple-iterator.c
gimple-iterator.h
gimple-laddress.c Makefile.in: Add tree-vrp.h to GTFILES. 2016-08-20 05:43:01 +00:00
gimple-low.c re PR debug/77931 (PASS->FAIL: gdb.cp/namespace.exp: print ina) 2016-10-11 12:52:44 +00:00
gimple-low.h
gimple-match-head.c fold-const.c (tree_swap_operands_p): Remove unused arg. 2016-11-09 15:15:28 +00:00
gimple-match.h
gimple-predict.h
gimple-pretty-print.c Dump probability for edges a frequency for BBs 2016-11-24 12:58:45 +00:00
gimple-pretty-print.h
gimple-ssa-backprop.c re PR tree-optimization/78312 (wrong code due to ssa-backprop) 2016-11-14 10:33:15 +00:00
gimple-ssa-isolate-paths.c gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New function. 2016-11-11 09:00:47 -07:00
gimple-ssa-nonnull-compare.c
gimple-ssa-split-paths.c gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa): Handle empty else block. 2016-07-05 13:25:47 +00:00
gimple-ssa-sprintf.c re PR tree-optimization/78586 (Wrong code caused by printf-return-value) 2016-11-30 09:01:47 +01:00
gimple-ssa-store-merging.c re PR tree-optimization/78436 (incorrect write to larger-than-type bitfield (signed char x:9)) 2016-11-22 11:15:43 +01:00
gimple-ssa-strength-reduction.c re PR tree-optimization/71915 (A missed opportunity for SLSR) 2016-10-31 03:04:59 +00:00
gimple-ssa-warn-alloca.c Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o. 2016-10-18 21:40:58 +00:00
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
gimple-streamer.h
gimple-walk.c
gimple-walk.h
gimple.c Introduce -fsanitize-address-use-after-scope 2016-11-07 10:23:38 +00:00
gimple.def
gimple.h backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
gimplify-me.c
gimplify-me.h
gimplify.c re PR middle-end/78333 (always-inline gnu-inline functions break -finstrument-functions) 2016-11-16 12:55:02 +00:00
gimplify.h
glimits.h Define TS 18661-1 type width macros in <limits.h> and <stdint.h>. 2016-09-09 17:59:43 +01:00
godump.c re PR go/78431 (ICE in go_append_padding, at godump.c:636) 2016-11-22 23:25:07 +00:00
graph.c use auto_sbitmap in various places 2016-07-26 10:44:08 +00:00
graph.h
graphds.c
graphds.h
graphite-dependences.c
graphite-isl-ast-to-gimple.c re PR tree-optimization/71575 ([graphite] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2500) 2016-11-11 12:54:25 +00:00
graphite-optimize-isl.c
graphite-poly.c
graphite-scop-detection.c
graphite-sese-to-poly.c
graphite.c
graphite.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c haifa-sched.c (call_used_regs_num): Rename to... 2016-10-26 17:07:55 +00:00
hard-reg-set.h
hash-map-tests.c Selftest framework 2016-06-06 17:11:30 +00:00
hash-map-traits.h
hash-map.h
hash-set-tests.c Selftest framework 2016-06-06 17:11:30 +00:00
hash-set.h
hash-table.c
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.c target.def (additional_allocno_class_p): New. 2016-11-10 17:04:31 +00:00
hooks.h target.def (additional_allocno_class_p): New. 2016-11-10 17:04:31 +00:00
host-default.c
hosthooks-def.h
hosthooks.h
hsa-brig-format.h
hsa-brig.c backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
hsa-builtins.def backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
hsa-dump.c backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
hsa-gen.c backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
hsa-regalloc.c
hsa.c backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
hsa.h backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
hw-doloop.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
hw-doloop.h
hwint.c Add inline functions for various bitwise operations. 2016-09-16 15:20:44 -04:00
hwint.h Add inline functions for various bitwise operations. 2016-09-16 15:20:44 -04:00
ifcvt.c re PR rtl-optimization/78120 (If conversion no longer performed) 2016-11-24 12:22:16 +00:00
ifcvt.h
inchash.c
inchash.h
incpath.c re PR driver/78206 (bootstrap failure under Apple sandbox that blacklists reads in /usr/local) 2016-11-07 18:33:49 +00:00
incpath.h
init-regs.c Enable AVX512_4FMAPS and AVX512_4VNNIW instructions 2016-11-17 14:11:21 -08:00
input.c substring locations and # line directives (PR preprocessor/78569) 2016-11-30 01:13:37 +00:00
input.h re PR gcov-profile/46266 (gcov generates data for non-existing file <built-in>) 2016-09-27 13:22:04 +00:00
insn-addr.h
insn-notes.def
internal-fn.c OpenMP loop cloning for SIMT execution 2016-11-22 20:56:43 +03:00
internal-fn.def OpenMP loop cloning for SIMT execution 2016-11-22 20:56:43 +03:00
internal-fn.h Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. 2016-11-14 13:51:48 +00:00
intl.c
intl.h
ipa-chkp.c re PR middle-end/71529 ([CHKP] ICE in expand_expr_real_1) 2016-06-15 15:49:40 +00:00
ipa-chkp.h
ipa-comdats.c re PR ipa/78188 (AIX Bootstrap broken by tree-vrp.c change) 2016-11-04 19:20:50 -04:00
ipa-cp.c pr78268.C: New test. 2016-11-13 22:04:36 +00:00
ipa-devirt.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
ipa-hsa.c backport: hsa-builtins.def: New file. 2016-11-23 15:51:02 +01:00
ipa-icf-gimple.c * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...) 2016-09-23 09:34:43 +02:00
ipa-icf-gimple.h
ipa-icf.c re PR lto/78211 (-fcompare-debug failure with -flto -fno-use-linker-plugin) 2016-11-28 11:00:43 +01:00
ipa-icf.h re PR lto/78211 (-fcompare-debug failure with -flto -fno-use-linker-plugin) 2016-11-28 11:00:43 +01:00
ipa-inline-analysis.c re PR middle-end/78306 ([CilkPlus] "inlining failed in call to always_inline ‘memset’: function not inlinable" with -fcilkplus) 2016-11-17 08:42:50 +00:00
ipa-inline-transform.c Introduce -fdump-ipa-clones dump output 2016-11-30 09:28:19 +00:00
ipa-inline.c re PR middle-end/78306 ([CilkPlus] "inlining failed in call to always_inline ‘memset’: function not inlinable" with -fcilkplus) 2016-11-17 08:42:50 +00:00
ipa-inline.h
ipa-polymorphic-call.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
ipa-profile.c Add IPA VRP 2016-09-20 23:29:05 +00:00
ipa-prop.c re PR ipa/78515 (ICE: in fold_binary_loc, at fold-const.c:8999 with -Os -mavx512bw) 2016-11-25 14:05:04 +00:00
ipa-prop.h Fix ice in set_value_range 2016-11-09 01:41:26 +00:00
ipa-pure-const.c re PR sanitizer/77396 (address sanitizer crashes if all static global variables are optimized) 2016-09-02 19:11:42 +02:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
ipa-utils.c Add IPA VRP 2016-09-20 23:29:05 +00:00
ipa-utils.h
ipa-visibility.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
ipa.c cgraphunit.c (analyze_functions): Set node->definition to false to signal symbol removal to... 2016-10-20 08:49:48 +00:00
ira-build.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ira-color.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ira-conflicts.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ira-costs.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ira-emit.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ira-int.h
ira-lives.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
ira.c ira: Don't substitute into TRAP_IF insns (PR78610) 2016-11-30 15:47:01 +01:00
ira.h
is-a.h
jump.c use rtx_insn * in various places where it is obvious 2016-11-02 03:44:50 +00:00
langhooks-def.h omp-low.c (lower_omp_target): Fix up argument to is_reference. 2016-11-10 12:38:05 +01:00
langhooks.c omp-low.c (lower_omp_target): Fix up argument to is_reference. 2016-11-10 12:38:05 +01:00
langhooks.h omp-low.c (lower_omp_target): Fix up argument to is_reference. 2016-11-10 12:38:05 +01:00
lcm.c use auto_sbitmap in various places 2016-07-26 10:44:08 +00:00
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c Use rtx_mode_t instead of std::make_pair 2016-11-18 10:04:53 +00:00
loop-init.c loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops. 2016-05-31 10:42:59 +00:00
loop-invariant.c re PR tree-optimization/78185 (Wrong branch optimization with -O1 on x86/x86_64) 2016-11-04 08:54:42 +00:00
loop-iv.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
loop-unroll.c re PR rtl-optimization/78241 (wrong code with -funroll-loops) 2016-11-10 18:55:57 +00:00
loop-unroll.h
lower-subreg.c use rtx_insn * more places where it is obvious 2016-11-21 06:14:52 +00:00
lower-subreg.h Fix typo in copyright boilerplate 2016-06-14 13:53:50 +00:00
lra-assigns.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
lra-coalesce.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
lra-constraints.c re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode) 2016-11-30 17:35:40 +00:00
lra-eliminations.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
lra-int.h re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC) 2016-08-02 16:07:36 +00:00
lra-lives.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
lra-remat.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
lra-spills.c Tweak LRA handling of shared spill slots 2016-11-25 08:23:08 +00:00
lra.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
lra.h
lto-cgraph.c Don't call get_working_sets w/ LTO and -fauto-profile (PR 2016-07-25 11:28:52 +00:00
lto-compress.c
lto-compress.h
lto-opts.c
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c Do not fixup edges for a thunk in LTRANS (PR lto/78049) 2016-10-20 15:30:17 +00:00
lto-streamer-out.c tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore backedges when identifying the single predecessor to take conditional... 2016-10-24 11:22:42 +00:00
lto-streamer.c Fix LTO_STREAMER_DEBUG build 2016-10-12 15:18:36 +02:00
lto-streamer.h cgraph.c (cgraph_node::verify_node): Compare against builtin by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE. 2016-07-25 12:35:08 +00:00
lto-wrapper.c
machmode.def
machmode.h Enable AVX512_4FMAPS and AVX512_4VNNIW instructions 2016-11-17 14:11:21 -08:00
main.c
match.pd re PR rtl-optimization/78546 (wrong code at -O2 and above) 2016-11-29 07:48:43 +00:00
mcf.c
mem-stats-traits.h
mem-stats.h
memmodel.h Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
memory-block.cc
memory-block.h
mkconfig.sh
mode-classes.def
mode-switching.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
modulo-sched.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
multiple_target.c re PR middle-end/78419 (ICE with target_clone on invalid target) 2016-11-18 23:21:31 +01:00
omp-builtins.def
omp-low.c re PR middle-end/69183 (ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region) 2016-11-23 20:28:41 +01:00
omp-low.h
omp-simd-clone.c re PR middle-end/67335 (ICE in compiling omp simd function with unused argument) 2016-11-21 20:17:36 +01:00
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-read.awk
optabs-libfuncs.c
optabs-libfuncs.h
optabs-query.c
optabs-query.h re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1) 2016-10-25 18:26:12 +02:00
optabs-tree.c re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1) 2016-10-25 18:26:12 +02:00
optabs-tree.h re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1) 2016-10-25 18:26:12 +02:00
optabs.c remove cast from emit_libcall_block 2016-11-21 06:16:03 +00:00
optabs.def re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1) 2016-10-25 18:26:12 +02:00
optabs.h remove cast from emit_libcall_block 2016-11-21 06:16:03 +00:00
optc-gen.awk
optc-save-gen.awk
opth-gen.awk opth-gen.awk: Use unsigned shifts for bit masks. 2016-11-23 14:53:12 -07:00
opts-common.c re PR middle-end/77475 (unnecessary or misleading context in reporting command line problems) 2016-09-13 10:45:36 +02:00
opts-diagnostic.h
opts-global.c
opts.c re PR sanitizer/69278 (Confusion option handling for -sanitize-recovery=alll) 2016-11-23 20:51:27 +01:00
opts.h Fix handling of -fsanitize-recover* options. 2016-09-26 10:55:34 +00:00
output.h
params-enum.h
params-list.h
params-options.h Add tests that test boundary values of params 2016-07-12 15:03:07 +00:00
params.c Offer suggestions for misspelled --param names. 2016-06-30 00:05:39 +00:00
params.def Support non-masked epilogue vectoriziation 2016-11-16 08:22:39 -08:00
params.h Introduce -fsanitize-address-use-after-scope 2016-11-07 10:23:38 +00:00
pass_manager.h
passes.c Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. 2016-11-14 13:51:48 +00:00
passes.def re PR tree-optimization/78343 (Loop is not eliminated) 2016-11-25 10:22:57 +00:00
plugin.c plugin.c (register_plugin_info): Produce an error message if the plugin is not found in the hash table. 2016-10-27 08:38:07 +00:00
plugin.def
plugin.h
postreload-gcse.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
postreload.c re PR middle-end/78540 (ICE: in df_refs_verify, at df-scan.c:4062 with -O -march=core2) 2016-11-28 23:51:29 +01:00
predict.c re PR middle-end/65950 (exit in main is causing the path to it to become unlikely.) 2016-10-18 08:42:21 -07:00
predict.def predict-12.c: New testcase. 2016-06-26 20:03:35 +00:00
predict.h predict.h (force_edge_cold): Declare. 2016-05-30 10:40:33 +00:00
prefix.c
prefix.h
pretty-print.c re PR tree-optimization/35503 (Warning about restricted pointers?) 2016-11-13 19:38:36 +00:00
pretty-print.h
print-rtl-function.c print-rtl-function.c: add (param) directive to dump 2016-11-09 20:55:03 +00:00
print-rtl.c print-rtl-function.c: add (param) directive to dump 2016-11-09 20:55:03 +00:00
print-rtl.h print-rtl-function.c: add (param) directive to dump 2016-11-09 20:55:03 +00:00
print-tree.c Fix print_node for CONSTRUCTORs 2016-11-24 09:42:18 +00:00
print-tree.h Fix print_node for CONSTRUCTORs 2016-11-24 09:42:18 +00:00
profile.c Make direct emission of time profiler counter 2016-11-03 15:24:22 +00:00
profile.h
read-md.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
read-md.h read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
read-rtl.c read-md.c: Move various state to within class rtx_reader 2016-10-18 00:19:17 +00:00
real.c Fix part of PR78555 - gcc/real.c:2890:25: runtime error: left shift of negative value -125 2016-11-30 12:22:55 +00:00
real.h Implement C _FloatN, _FloatNx types. 2016-08-19 18:43:26 +01:00
realmpfr.c
realmpfr.h
recog.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
recog.h make recog () take a rtx_insn * 2016-11-21 06:15:08 +00:00
ree.c re PR rtl-optimization/78437 (invalid sign-extend conversion in REE pass) 2016-11-24 15:01:32 +00:00
reg-notes.def [DWARF] Enable DW_CFA_VAL_EXPRESSION support 2016-11-03 17:32:03 +00:00
reg-stack.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
regcprop.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
regcprop.h
reginfo.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
regrename.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
regrename.h
regs.h
regset.h
regstat.c
reload.c re PR target/48551 (Following source code crashes the c++ compiler on coldfire platform.) 2016-11-20 22:29:36 -07:00
reload.h re PR target/48551 (Following source code crashes the c++ compiler on coldfire platform.) 2016-11-20 22:29:36 -07:00
reload1.c re PR target/48551 (Following source code crashes the c++ compiler on coldfire platform.) 2016-11-20 22:29:36 -07:00
reorg.c remove cast to rtx_insn * in remove_note 2016-11-02 03:45:59 +00:00
resource.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
resource.h
rtl-chkp.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
rtl-chkp.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-tests.c rtx_writer: avoid printing trailing default values 2016-11-07 15:19:17 +00:00
rtl.c make LABEL_REF_LABEL a rtx_insn * 2016-10-21 12:32:56 +00:00
rtl.def
rtl.h re PR middle-end/78540 (ICE: in df_refs_verify, at df-scan.c:4062 with -O -march=core2) 2016-11-28 23:51:29 +01:00
rtlanal.c Fix PR78588 - rtlanal.c:5210:38: runtime error: shift exponent 4294967295 is too large for 64-bit type 2016-11-30 07:30:55 +00:00
rtlhash.c
rtlhash.h
rtlhooks-def.h
rtlhooks.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
sancov.c
sanitizer.def asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove. 2016-11-09 00:15:35 +02:00
sanopt.c Introduce -fsanitize-address-use-after-scope 2016-11-07 10:23:38 +00:00
sbitmap.c
sbitmap.h add auto_sbitmap class 2016-07-26 10:43:58 +00:00
sched-deps.c sched: Do not mix prologue and epilogue insns 2016-10-28 16:39:28 +02:00
sched-ebb.c
sched-int.h sched: Do not mix prologue and epilogue insns 2016-10-28 16:39:28 +02:00
sched-rgn.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
sdbout.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
sdbout.h
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order. 2016-11-07 17:03:55 +00:00
sel-sched-ir.h gcc-ar.c (main): Fix indentation. 2016-11-22 18:44:08 +00:00
sel-sched.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
sel-sched.h
selftest-rtl.h Start adding target-specific selftests 2016-11-04 17:05:38 +00:00
selftest-run-tests.c [2/2] Add store merging unit tests 2016-11-08 16:04:20 +00:00
selftest.c libiberty: avoid reading past end of buffer in strndup/xstrndup (PR c/78498) 2016-11-30 14:50:43 +00:00
selftest.h [2/2] Add store merging unit tests 2016-11-08 16:04:20 +00:00
sese.c
sese.h
shrink-wrap.c shrink-wrap: New spread_components 2016-11-29 03:19:04 +01:00
shrink-wrap.h shrink-wrap: Shrink-wrapping for separate components 2016-10-12 17:32:23 +02:00
signop.h
simplify-rtx.c simplify-rtx: Add missing line for previous commit (PR78583) 2016-11-30 09:41:26 +01:00
sparseset.c
sparseset.h
spellcheck-tree.c Fix build of spellcheck-tree.c with older gccs 2016-07-21 17:21:12 +00:00
spellcheck-tree.h Enabling work for C++ handling of misspelled identifiers and typenames 2016-07-20 14:03:03 +00:00
spellcheck.c spellcheck bugfixes: don't offer the goal string as a suggestion 2016-11-29 16:25:01 +00:00
spellcheck.h spellcheck bugfixes: don't offer the goal string as a suggestion 2016-11-29 16:25:01 +00:00
sreal.c Add sreal to selftests 2016-07-20 07:00:50 +00:00
sreal.h ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero. 2016-09-23 11:43:09 +02:00
ssa-iterators.h ssa-iterators.h (ssa_vuse_operand): New inline. 2016-08-18 07:21:11 +00:00
ssa.h Makefile.in: Add tree-vrp.h to GTFILES. 2016-08-20 05:43:01 +00:00
stab.def
stack-ptr-mod.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
statistics.c re PR lto/77305 (-fdump-tree-all and -flto causes ICE) 2016-08-23 07:21:36 +00:00
statistics.h
stmt.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
stmt.h
stor-layout.c Set mode of decimal floats before calling layout_type 2016-11-25 08:20:40 +00:00
stor-layout.h
store-motion.c make pattern_regs a vec 2016-07-28 11:01:34 +00:00
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
substring-locations.c Move class substring_loc from c-family into gcc 2016-09-07 16:56:23 +00:00
substring-locations.h Move class substring_loc from c-family into gcc 2016-09-07 16:56:23 +00:00
symbol-summary.h
symtab.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
sync-builtins.def
system.h [Patch 7/17] Delete TARGET_FLT_EVAL_METHOD and poison it. 2016-11-23 17:24:28 +00:00
target-def.h
target-globals.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
target-globals.h
target-hooks-macros.h
target-insns.def nvptx backend prerequisites for OpenMP offloading 2016-11-16 20:17:00 +03:00
target.def PR tree-optimization/78512 - [7 Regression] r242674 miscompiles Linux kernel 2016-11-29 14:08:02 -07:00
target.h re PR tree-optimization/52171 (memcmp/strcmp/strncmp can be optimized when the result is tested for [in]equality with 0) 2016-06-03 14:20:53 +00:00
targhooks.c PR tree-optimization/78512 - [7 Regression] r242674 miscompiles Linux kernel 2016-11-29 14:08:02 -07:00
targhooks.h PR tree-optimization/78512 - [7 Regression] r242674 miscompiles Linux kernel 2016-11-29 14:08:02 -07:00
timevar.c passes.c (execute_todo): Do not push/pop TV_TODO. 2016-08-12 07:38:24 +00:00
timevar.def GIMPLE store merging pass 2016-10-28 14:18:50 +00:00
timevar.h passes.c (execute_todo): Do not push/pop TV_TODO. 2016-08-12 07:38:24 +00:00
tlink.c
toplev.c [Patch 6/17] Migrate excess precision logic to use TARGET_EXCESS_PRECISION 2016-11-23 17:23:12 +00:00
toplev.h gcc: remove unneeded global related to hot/cold partitioning 2016-11-16 22:10:52 +00:00
tracer.c
tracer.h
trans-mem.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
trans-mem.h
tree-affine.c Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG. 2016-07-11 15:02:12 +00:00
tree-affine.h
tree-call-cdce.c re PR tree-optimization/78224 (g++ ICE at -O2(-O1 on gcc6) and above in verify_loop_structure, at cfgloop.c:1646) 2016-11-08 08:03:54 +00:00
tree-cfg.c tree-cfg.c (lower_phi_internal_fn): Do not look for further PHIs after a regular stmt. 2016-11-29 14:01:32 +00:00
tree-cfg.h
tree-cfgcleanup.c re PR tree-optimization/78482 (wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu) 2016-11-23 14:25:48 +00:00
tree-cfgcleanup.h
tree-chkp-opt.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-chkp.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-chkp.h
tree-chrec.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-chrec.h tree-chrec.c (convert_affine_scev): New parameter. 2016-07-21 10:52:13 +00:00
tree-complex.c re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) 2016-08-12 10:15:57 +00:00
tree-core.h OpenMP loop cloning for SIMT execution 2016-11-22 20:56:43 +03:00
tree-data-ref.c re PR tree-optimization/77605 (wrong code at -O3 on x86_64-linux-gnu) 2016-09-19 06:55:17 +00:00
tree-data-ref.h
tree-dfa.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-dfa.h
tree-diagnostic.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-diagnostic.h
tree-dump.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-dump.h
tree-eh.c
tree-eh.h
tree-emutls.c
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c fold-const.c (fold_cond_expr_with_comparison): Move simplification for A cmp C1 ? A : C2 to below, also simplify remaining code. 2016-11-23 12:44:08 +00:00
tree-if-conv.h Support non-masked epilogue vectoriziation 2016-11-16 08:22:39 -08:00
tree-inline.c Add SET_DECL_MODE 2016-11-18 10:03:12 +00:00
tree-inline.h
tree-into-ssa.c Add SET_DECL_MODE 2016-11-18 10:03:12 +00:00
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c re PR tree-optimization/78348 ([7 REGRESSION] 15% performance drop for coremark-pro/nnet-test after r242038) 2016-11-16 08:42:20 +00:00
tree-nested.c re PR fortran/78298 (ICE in lookup_decl_in_outer_ctx, bei omp-low.c:4115) 2016-11-28 18:31:37 +01:00
tree-nested.h
tree-nrv.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-object-size.c PR tree-optimization/71831 - __builtin_object_size poor results with no 2016-09-01 20:14:50 -06:00
tree-object-size.h PR tree-optimization/71831 - __builtin_object_size poor results with no 2016-09-01 20:14:50 -06:00
tree-outof-ssa.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
tree-outof-ssa.h
tree-parloops.c ipa-inline-analysis.c (find_foldable_builtin_expect): Use gimple_call_internal_p. 2016-09-26 15:50:13 +00:00
tree-parloops.h
tree-pass.h OpenMP offloading to NVPTX: middle-end changes 2016-11-22 19:57:29 +03:00
tree-phinodes.c ssa-iterators.h (ssa_vuse_operand): New inline. 2016-08-18 07:21:11 +00:00
tree-phinodes.h ssa-iterators.h (ssa_vuse_operand): New inline. 2016-08-18 07:21:11 +00:00
tree-predcom.c tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only iterates 1 time. 2016-10-13 11:05:53 +00:00
tree-pretty-print.c OpenMP loop cloning for SIMT execution 2016-11-22 20:56:43 +03:00
tree-pretty-print.h
tree-profile.c Make one extra BB to prevent PHI argument clash (PR 2016-11-29 13:20:00 +00:00
tree-scalar-evolution.c re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440) 2016-08-09 15:01:49 +00:00
tree-scalar-evolution.h tree-scalar-evolution.c (simple_iv_with_niters): New funcion. 2016-07-15 09:04:57 +00:00
tree-sra.c Add SET_DECL_MODE 2016-11-18 10:03:12 +00:00
tree-ssa-address.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-ssa-address.h
tree-ssa-alias.c re PR tree-optimization/78035 (Inconsistency between address comparison and alias analysis) 2016-11-02 08:29:48 +00:00
tree-ssa-alias.h re PR tree-optimization/78035 (Inconsistency between address comparison and alias analysis) 2016-11-02 08:29:48 +00:00
tree-ssa-ccp.c re PR tree-optimization/78542 (wrong code at -Og results in endless loop) 2016-11-28 15:03:55 +00:00
tree-ssa-ccp.h Patch for performing interprocedural bitwise constant propagation. 2016-08-26 08:05:39 +00:00
tree-ssa-coalesce.c tree-ssa-coalesce.c (register_default_def): Remove register_ssa_partition. 2016-11-15 22:40:11 +00:00
tree-ssa-coalesce.h
tree-ssa-copy.c tree-ssa-propagate.h (substitute_and_fold): Adjust prototype. 2016-10-18 07:49:32 +00:00
tree-ssa-dce.c re PR tree-optimization/78343 (Loop is not eliminated) 2016-11-25 10:22:57 +00:00
tree-ssa-dom.c fold-const.c (tree_swap_operands_p): Remove unused arg. 2016-11-09 15:15:28 +00:00
tree-ssa-dom.h
tree-ssa-dse.c Fix dump output in dse_optimize_stmt 2016-11-14 14:22:10 +00:00
tree-ssa-forwprop.c re PR tree-optimization/77399 (Poor code generation for vector casts and loads) 2016-10-04 13:40:54 +00:00
tree-ssa-ifcombine.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
tree-ssa-live.c tree-ssa-coalesce.c (register_default_def): Remove register_ssa_partition. 2016-11-15 22:40:11 +00:00
tree-ssa-live.h tree-ssa-coalesce.c (register_default_def): Remove register_ssa_partition. 2016-11-15 22:40:11 +00:00
tree-ssa-loop-ch.c invoke.texi (max-loop-headers-insns): Document. 2016-06-08 14:11:51 +00:00
tree-ssa-loop-im.c re PR tree-optimization/78185 (Wrong branch optimization with -O1 on x86/x86_64) 2016-11-04 08:54:42 +00:00
tree-ssa-loop-ivcanon.c re PR tree-optimization/71595 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704) 2016-11-24 12:25:22 +00:00
tree-ssa-loop-ivopts.c re PR tree-optimization/78574 (ice on valid C code at -O2 and -O3 in both 32- and 64-bit modes on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1))) 2016-11-30 14:41:09 +00:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c use auto_sbitmap in various places 2016-07-26 10:44:08 +00:00
tree-ssa-loop-manip.h loop splitting 2016-10-20 12:18:32 +00:00
tree-ssa-loop-niter.c re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes)) 2016-08-16 09:13:50 +00:00
tree-ssa-loop-niter.h re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440) 2016-08-09 15:01:49 +00:00
tree-ssa-loop-prefetch.c Remove dead FIXME 2016-11-21 17:22:45 +00:00
tree-ssa-loop-split.c fix pr78060 pr78061 pr78088 2016-10-26 12:54:30 +00:00
tree-ssa-loop-unswitch.c re PR tree-optimization/23855 (loop header should also be pulled out of the inner loop too) 2016-08-17 08:11:32 +00:00
tree-ssa-loop.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
tree-ssa-loop.h
tree-ssa-math-opts.c Improve comment for struct symbolic_number in bswap pass 2016-11-25 10:03:46 +00:00
tree-ssa-operands.c Iterator to visit SSA 2016-09-15 02:03:51 +00:00
tree-ssa-operands.h
tree-ssa-phionlycprop.c
tree-ssa-phiopt.c re PR middle-end/78228 (fstrict-overflow breaks code without overflow?) 2016-11-07 12:25:09 +00:00
tree-ssa-phiprop.c
tree-ssa-pre.c re PR tree-optimization/77855 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes)) 2016-10-06 12:17:53 +00:00
tree-ssa-propagate.c tree-ssa-propagate.h (substitute_and_fold): Adjust prototype. 2016-10-18 07:49:32 +00:00
tree-ssa-propagate.h tree-ssa-propagate.h (substitute_and_fold): Adjust prototype. 2016-10-18 07:49:32 +00:00
tree-ssa-reassoc.c fold-const.c (tree_swap_operands_p): Remove unused arg. 2016-11-09 15:15:28 +00:00
tree-ssa-sccvn.c fold-const.c (tree_swap_operands_p): Remove unused arg. 2016-11-09 15:15:28 +00:00
tree-ssa-sccvn.h re PR tree-optimization/71901 (ice in find_or_generate_expression) 2016-07-19 10:19:46 +00:00
tree-ssa-scopedtables.c
tree-ssa-scopedtables.h
tree-ssa-sink.c
tree-ssa-strlen.c Add inline functions for various bitwise operations. 2016-09-16 15:20:44 -04:00
tree-ssa-structalias.c re PR tree-optimization/78035 (Inconsistency between address comparison and alias analysis) 2016-11-02 08:29:48 +00:00
tree-ssa-tail-merge.c Do not merge BBs with a different EH landing pads (PR 2016-10-13 10:06:35 +00:00
tree-ssa-ter.c [TER] PR target/48863 : Don't replace expressions across local register variable definitions 2016-11-24 15:22:34 +00:00
tree-ssa-ter.h
tree-ssa-threadbackward.c tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded parameter. 2016-11-15 09:16:49 -07:00
tree-ssa-threadbackward.h
tree-ssa-threadedge.c fold-const.c (tree_swap_operands_p): Remove unused arg. 2016-11-09 15:15:28 +00:00
tree-ssa-threadedge.h
tree-ssa-threadupdate.c re PR tree-optimization/77424 (Identical statements in if-else branches) 2016-10-11 15:41:51 -06:00
tree-ssa-threadupdate.h
tree-ssa-uncprop.c
tree-ssa-uninit.c re PR tree-optimization/78455 (ICE in operator[], at vec.h:732) 2016-11-23 03:17:14 +00:00
tree-ssa.c Add SET_DECL_MODE 2016-11-18 10:03:12 +00:00
tree-ssa.h
tree-ssanames.c Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. 2016-11-14 13:51:48 +00:00
tree-ssanames.h Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. 2016-11-14 13:51:48 +00:00
tree-stdarg.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-stdarg.h
tree-streamer-in.c Add SET_DECL_MODE 2016-11-18 10:03:12 +00:00
tree-streamer-out.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tree-streamer.c [PR lto/77458] Avoid ICE in offloading with differing _FloatN, _FloatNx types 2016-10-19 12:48:46 +02:00
tree-streamer.h cgraph.c (cgraph_node::verify_node): Compare against builtin by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE. 2016-07-25 12:35:08 +00:00
tree-switch-conversion.c
tree-tailcall.c Tighten check for whether sibcall references local variables 2016-11-25 08:17:46 +00:00
tree-vect-data-refs.c Support non-masked epilogue vectoriziation 2016-11-16 08:22:39 -08:00
tree-vect-generic.c re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1) 2016-10-25 18:26:12 +02:00
tree-vect-loop-manip.c Support non-masked epilogue vectoriziation 2016-11-16 08:22:39 -08:00
tree-vect-loop.c Support non-masked epilogue vectoriziation 2016-11-16 08:22:39 -08:00
tree-vect-patterns.c re PR target/78102 (GCC refuses to generate PCMPEQQ instruction for SSE4.1) 2016-10-25 18:26:12 +02:00
tree-vect-slp.c re PR tree-optimization/78205 (BB vectorization confused by too large load groups) 2016-11-08 08:06:42 +00:00
tree-vect-stmts.c re PR target/78007 (Important loop from 482.sphinx3 is not vectorized) 2016-11-09 08:19:05 +00:00
tree-vectorizer.c re PR tree-optimization/78396 (gcc.dg/vect/bb-slp-cond-1.c FAILs after fix for PR77848) 2016-11-25 08:59:28 +00:00
tree-vectorizer.h Support non-masked epilogue vectoriziation 2016-11-16 08:22:39 -08:00
tree-vrp.c tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node for the EQ_EXPR. 2016-11-29 11:16:15 -08:00
tree-vrp.h Fix ipa-vrp convert value_range 2016-09-27 03:41:14 +00:00
tree.c tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node. 2016-11-26 10:41:55 +00:00
tree.def re PR ipa/78515 (ICE: in fold_binary_loc, at fold-const.c:8999 with -Os -mavx512bw) 2016-11-25 14:05:04 +00:00
tree.h re PR middle-end/78429 (ICE in set_value_range, at tree-vrp.c on non-standard boolean) 2016-11-24 12:02:53 +00:00
treestruct.def
tsan.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c Improvements to typed_splay_tree 2016-09-02 15:22:21 +00:00
typed-splay-tree.h Improvements to typed_splay_tree 2016-09-02 15:22:21 +00:00
ubsan.c re PR sanitizer/77823 (ICE: in ubsan_encode_value, at ubsan.c:137 with -fsanitize=undefined and vector types) 2016-11-16 09:28:50 +01:00
ubsan.h re PR sanitizer/77823 (ICE: in ubsan_encode_value, at ubsan.c:137 with -fsanitize=undefined and vector types) 2016-11-16 09:28:50 +01:00
valtrack.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
valtrack.h
value-prof.c c-common.c (c_common_truthvalue_conversion): Warn for multiplications in boolean context. 2016-10-24 17:14:41 +00:00
value-prof.h Make direct emission of time profiler counter 2016-11-03 15:24:22 +00:00
var-tracking.c Move MEMMODEL_* from coretypes.h to memmodel.h 2016-10-13 14:17:52 +00:00
varasm.c Fix bootstrap with !ASM_OUTPUT_MAX_SKIP_ALIGN 2016-11-24 22:30:54 +00:00
varasm.h
varpool.c omp-low.c (lower_omp_target): Fix up argument to is_reference. 2016-11-10 12:38:05 +01:00
vec.c Selftest framework 2016-06-06 17:11:30 +00:00
vec.h vec.h (vNULL): Extend comment to say = vNULL initialization isn't needed for static vars. 2016-09-23 18:59:14 +02:00
version.c
version.h
vmsdbg.h
vmsdbgout.c Fix gcc/vmsdbgout.c:vmsdbg_debug_hooks for "More trivial bits from early LTO debug merge" 2016-10-12 15:08:53 +02:00
vtable-verify.c tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. 2016-10-09 13:19:48 +02:00
vtable-verify.h
web.c
wide-int-print.cc builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1... 2016-07-19 18:40:55 +02:00
wide-int-print.h
wide-int.cc builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1... 2016-07-19 18:40:55 +02:00
wide-int.h Use rtx_mode_t instead of std::make_pair 2016-11-18 10:04:53 +00:00
xcoff.h
xcoffout.c
xcoffout.h

README.Portability

Copyright (C) 2000-2016 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 now 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.


Avoid unnecessary test before free
----------------------------------

Since SunOS 4 stopped being a reasonable portability target,
(which happened around 2007) there has been no need to guard
against "free (NULL)".  Thus, any guard like the following
constitutes a redundant test:

  if (P)
    free (P);

It is better to avoid the test.[*]
Instead, simply free P, regardless of whether it is NULL.

[*] However, if your profiling exposes a test like this in a
performance-critical loop, say where P is nearly always NULL, and
the cost of calling free on a NULL pointer would be prohibitively
high, consider using __builtin_expect, e.g., like this:

  if (__builtin_expect (ptr != NULL, 0))
    free (ptr);



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.