gcc/gcc
Jakub Jelinek 1a2e970832 re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning)
PR sanitizer/81275
	* cp-tree.h (SWITCH_STMT_ALL_CASES_P): Define.
	(SWITCH_STMT_NO_BREAK_P): Define.
	(note_break_stmt, note_iteration_stmt_body_start,
	note_iteration_stmt_body_end): Declare.
	* decl.c (struct cp_switch): Add has_default_p, break_stmt_seen_p
	and in_loop_body_p fields. 
	(push_switch): Clear them.
	(pop_switch): Set SWITCH_STMT_CANNOT_FALLTHRU_P if has_default_p
	and !break_stmt_seen_p.  Assert in_loop_body_p is false.
	(note_break_stmt, note_iteration_stmt_body_start,
	note_iteration_stmt_body_end): New functions.
	(finish_case_label): Set has_default_p when both low and high
	are NULL_TREE.
	* parser.c (cp_parser_iteration_statement): Use
	note_iteration_stmt_body_start and note_iteration_stmt_body_end
	around parsing iteration body.
	* pt.c (tsubst_expr): Likewise.
	* cp-objcp-common.c (cxx_block_may_fallthru): Return false for
	SWITCH_STMT which contains no BREAK_STMTs, contains a default:
	CASE_LABEL_EXPR and where SWITCH_STMT_BODY isn't empty and
	can't fallthru.
	* semantics.c (finish_break_stmt): Call note_break_stmt.
	* cp-gimplify.c (genericize_switch_stmt): Copy SWITCH_STMT_ALL_CASES_P
	bit to SWITCH_ALL_CASES_P.  Assert that if SWITCH_STMT_NO_BREAK_P then
	the break label is not TREE_USED.

	* g++.dg/warn/pr81275-1.C: New test.
	* g++.dg/warn/pr81275-2.C: New test.
	* g++.dg/warn/pr81275-3.C: New test.
	* c-c++-common/tsan/pr81275.c: Skip for C++ and -O2.

From-SVN: r255218
2017-11-28 22:24:32 +01:00
..
ada tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. 2017-11-28 09:43:32 +01:00
brig tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. 2017-11-28 09:43:32 +01:00
c re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:22:52 +01:00
c-family re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:22:52 +01:00
common Set default to -fomit-frame-pointer 2017-11-16 11:44:30 +00:00
config Enable VBMI2 support [5/7] 2017-11-28 17:59:39 +00:00
cp re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:24:32 +01:00
doc Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
fortran PR 53796 Improve INQUIRE(RECL=...) handling 2017-11-28 21:28:50 +02:00
ginclude Add __builtin_tgmath for better tgmath.h implementation (bug 81156). 2017-11-15 01:53:45 +00:00
go tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. 2017-11-28 09:43:32 +01:00
jit tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. 2017-11-28 09:43:32 +01:00
lto Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
objc PR c/81117 - Improve buffer overflow checking in strncpy 2017-11-10 09:35:26 -07:00
objcp
po
testsuite re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:24:32 +01:00
ABOUT-GCC-NLS
acinclude.m4 Cleanup Solaris linker version checks 2017-11-02 10:49:16 +00:00
aclocal.m4
addresses.h
alias.c More is_a <scalar_int_mode> 2017-11-01 13:33:18 +00:00
alias.h
alloc-pool.c
alloc-pool.h
asan.c Remove semicolon after do {} while (0) in DEF_SANITIZER_BUILTIN 2017-11-05 09:58:27 +00:00
asan.h
attribs.c re PR libstdc++/81706 (std::sin vectorization bug) 2017-10-25 10:05:58 +02:00
attribs.h re PR libstdc++/81706 (std::sin vectorization bug) 2017-10-25 10:05:58 +02:00
auto-inc-dec.c
auto-profile.c auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 2017-11-14 09:18:35 +00:00
auto-profile.h
backend.h
BASE-VER
basic-block.h asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
bb-reorder.c re PR rtl-optimization/83030 (ICE in create_pseudo_cfg, at dwarf2cfi.c:2840) 2017-11-22 21:43:22 +00:00
bb-reorder.h
bitmap.c
bitmap.h
brig-builtins.def [BRIGFE] Changed pure attributes to const for the brig-builtins 2017-09-28 15:29:07 +00:00
bt-load.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
builtin-attrs.def
builtin-types.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
builtins.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
builtins.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
builtins.h PR c/81117 - Improve buffer overflow checking in strncpy 2017-11-10 09:35:26 -07:00
caller-save.c Make more use of df_read_modify_subreg_p 2017-10-26 16:12:09 +00:00
calls.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
calls.h PR tree-optimization/82945 - add warning for passing non-strings to functions that expect string arguments 2017-11-21 13:01:58 -07:00
ccmp.c
ccmp.h
cfg-flags.def
cfg.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
cfg.h cfg.c (scale_bbs_frequencies_int, [...]): Remove. 2017-11-16 11:08:12 +00:00
cfganal.c cfganal.c (single_pred_edge_ignoring_loop_edges): New function extracted from tree-ssa-dom.c. 2017-11-03 10:28:28 -06:00
cfganal.h cfganal.c (single_pred_edge_ignoring_loop_edges): New function extracted from tree-ssa-dom.c. 2017-11-03 10:28:28 -06:00
cfgbuild.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
cfgbuild.h
cfgcleanup.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
cfgcleanup.h
cfgexpand.c Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
cfgexpand.h
cfghooks.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
cfghooks.h
cfgloop.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
cfgloop.h cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. 2017-11-27 11:56:36 +00:00
cfgloopanal.c cfgloopanal.c: Include sreal.h 2017-11-16 10:36:04 +00:00
cfgloopmanip.c cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile manipulation. 2017-11-16 10:33:48 +00:00
cfgloopmanip.h
cfgrtl.c re PR rtl-optimization/83030 (ICE in create_pseudo_cfg, at dwarf2cfi.c:2840) 2017-11-22 21:43:22 +00:00
cfgrtl.h
cgraph.c ipa-profile.c (ipa_propagate_frequency_1): Use count instead of frequency. 2017-11-23 15:59:07 +00:00
cgraph.h cgraph.c (cgraph_edge::sreal_frequency): New function. 2017-11-13 17:23:25 +00:00
cgraphbuild.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
cgraphclones.c cgraphclones.c (cgraph_node::create_clone): Fix updating of profile when inlining. 2017-11-23 15:52:50 +00:00
cgraphunit.c auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 2017-11-14 09:18:35 +00:00
ChangeLog re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:22:52 +01: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-2016
ChangeLog.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
chkp-builtins.def
cif-code.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
collect2-aix.c
collect2-aix.h
collect2.c Remove obsolete ECOFF support. 2017-11-09 10:03:52 -08:00
collect2.h
collect-utils.c
collect-utils.h
color-macros.h GCOV: introduce usage of terminal colors. 2017-10-31 11:57:10 +00:00
combine-stack-adj.c
combine.c re PR rtl-optimization/81553 (ICE in immed_wide_int_const, at emit-rtl.c:607) 2017-11-25 20:35:47 +01:00
common.md Allow vector CONSTs 2017-11-01 10:37:03 +00:00
common.opt re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
compare-elim.c re PR rtl-optimization/82913 (ICE: Segmentation fault in try_merge_compare) 2017-11-10 00:58:51 +01:00
conditions.h
config.build
config.gcc i386.c (processor_target_table): Add skylake_cost for skylake-avx512. 2017-11-26 17:11:29 +01:00
config.host
config.in Use -xbrace_comment=no with recent Solaris/x86 as 2017-10-26 12:22:21 +00:00
configure Plugin support on Windows/MinGW 2017-11-26 13:00:48 +00:00
configure.ac Coverage: remove -fkeep-inline-functions from coverage_flags. 2017-11-15 07:25:40 +00:00
context.c
context.h
convert.c
convert.h
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
coretypes.h
coverage.c GCOV: do not support unexecuted blocks in Ada 2017-11-10 14:40:17 +00:00
coverage.h
cppbuiltin.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c
cse.c Make more use of GET_MODE_UNIT_PRECISION 2017-10-22 21:39:29 +00:00
cselib.c
cselib.h
cstamp-h.in
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
DATESTAMP Daily bump. 2017-11-28 00:16:20 +00:00
dbgcnt.c
dbgcnt.def
dbgcnt.h
dbxout.c re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) 2017-11-28 14:03:37 +01:00
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c
debug.h re PR lto/81351 (Many LTO testcases FAIL) 2017-11-13 17:26:41 +00:00
defaults.h [cr16, powerpcspe, rs6000] Remove semicolon after ASM_OUTPUT_LABELREF macro body 2017-11-12 16:07:08 +00:00
DEV-PHASE
df-core.c
df-problems.c
df-scan.c
df.h
dfp.c
dfp.h
diagnostic-color.c GCOV: introduce usage of terminal colors. 2017-10-31 11:57:10 +00:00
diagnostic-color.h
diagnostic-core.h diagnostics: get rid of *_at_rich_loc in favor of overloading 2017-10-31 20:21:58 +00:00
diagnostic-show-locus.c Move selftest::test_diagnostic_context to its own header 2017-11-02 20:09:18 +00:00
diagnostic.c [Diagnostic Patch] don't print column zero 2017-11-13 15:32:34 +00:00
diagnostic.def
diagnostic.h
dojump.c
dojump.h
dominance.c
dominance.h
domwalk.c
domwalk.h
double-int.c
double-int.h
dse.c re PR rtl-optimization/82044 (runtime signed integer overflow in check_mem_read_rtx() and all_positions_needed_p() in dse.c) 2017-11-22 10:08:23 +01:00
dumpfile.c
dumpfile.h introduce TDF_compare_debug, omit OBJ_TYPE_REF casts with it 2017-11-15 03:11:48 +00:00
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c re PR lto/81351 (Many LTO testcases FAIL) 2017-11-13 17:26:41 +00:00
dwarf2out.c Fix .debug_rnglists generation with -gdwarf-5 -gsplit-dwarf. 2017-11-23 16:56:05 +00:00
dwarf2out.h
edit-context.c
edit-context.h
emit-rtl.c Fix calculation of ptr_mode for MODE_PARTIAL_INT Pmode 2017-11-22 13:58:20 +00:00
emit-rtl.h Be stricter about CONST_VECTOR operands 2017-11-09 15:03:01 +00:00
errors.c
errors.h
et-forest.c
et-forest.h
except.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
except.h
exec-tool.in
explow.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
explow.h asan.c (handle_builtin_alloca): Deal with all alloca variants. 2017-10-19 15:58:05 +00:00
expmed.c re PR target/82981 (unnecessary __multi3 call for mips64r6 linux kernel) 2017-11-15 10:01:42 +01:00
expmed.h re PR target/82981 (unnecessary __multi3 call for mips64r6 linux kernel) 2017-11-15 10:01:42 +01:00
expr.c Fix PR82488 - signed integer overflow in expr.c 2017-11-27 05:20:43 +00:00
expr.h
fibonacci_heap.c
fibonacci_heap.h
file-find.c Revert r238089 (PR driver/81829). 2017-10-19 11:08:28 +00:00
file-find.h Revert r238089 (PR driver/81829). 2017-10-19 11:08:28 +00:00
final.c re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) 2017-11-27 09:48:56 +01:00
fixed-value.c
fixed-value.h
flag-types.h Delete obsolete SDB debug info support. 2017-10-29 15:45:41 -07:00
flags.h
fold-const-call.c Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
fold-const-call.h
fold-const.c Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
fold-const.h re PR tree-optimization/82434 (-fstore-merging does not work reliably.) 2017-10-06 11:39:07 +02:00
fp-test.c
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
function-tests.c
function.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
function.h generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
fwprop.c Make more use of GET_MODE_UNIT_BITSIZE 2017-10-13 09:53:00 +00:00
gcc-ar.c Revert r238089 (PR driver/81829). 2017-10-19 11:08:28 +00:00
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h
gcc-symtab.h
gcc.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
gcc.h
gcov-counter.def
gcov-dump.c GCOV: do not support unexecuted blocks in Ada 2017-11-10 14:40:17 +00:00
gcov-io.c
gcov-io.h
gcov-iov.c
gcov-tool.c
gcov.c GCOV: remove typedef of coverage_t. 2017-11-13 09:06:54 +00:00
gcse-common.c
gcse-common.h
gcse.c
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in print-tree.h (debug_vec_tree): Remove prototype. 2017-11-21 10:06:52 +00:00
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c
genautomata.c
gencfn-macros.c builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and... 2017-10-27 18:15:38 +00:00
gencheck.c
genchecksum.c
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c
genenums.c
generic-match-head.c
generic-match.h
genextract.c
genflags.c
gengenrtl.c
gengtype-lex.l
gengtype-parse.c
gengtype-state.c
gengtype.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
gengtype.h
genhooks.c
genmatch.c
genmddeps.c
genmddump.c
genmodes.c qsort comparator consistency checking 2017-09-29 19:00:15 +03:00
genmultilib
genopinit.c
genoutput.c
genpeep.c
genpreds.c
genrecog.c genrecog.c (validate_pattern): For VEC_SELECT verify that CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1. 2017-10-12 14:11:11 +02:00
gensupport.c
gensupport.h
gentarget-def.c
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c
ggc-tests.c
ggc.h
gimple-builder.c
gimple-builder.h
gimple-expr.c [PATCH] DECL_ASSEMBLER_NAME and friends 2017-10-11 16:35:18 +00:00
gimple-expr.h
gimple-fold.c re PR tree-optimization/83141 (SRA and memcpy folding interact badly generating wrong-code) 2017-11-28 11:58:45 +00:00
gimple-fold.h
gimple-iterator.c gimple-iterator.c (gimple_find_edge_insert_loc): Ignore fake edges to exit when looking for a place to insert. 2017-11-22 09:05:53 +00:00
gimple-iterator.h
gimple-laddress.c
gimple-low.c
gimple-low.h
gimple-match-head.c
gimple-match.h
gimple-predict.h
gimple-pretty-print.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
gimple-pretty-print.h
gimple-ssa-backprop.c builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and... 2017-10-27 18:15:38 +00:00
gimple-ssa-evrp-analyze.c * gimple-ssa-evrp-analyze.c 2017-11-28 11:21:10 -07:00
gimple-ssa-evrp-analyze.h re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable) 2017-11-28 14:58:11 +00:00
gimple-ssa-evrp.c * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer) 2017-11-22 13:31:14 -07:00
gimple-ssa-isolate-paths.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
gimple-ssa-nonnull-compare.c
gimple-ssa-split-paths.c
gimple-ssa-sprintf.c gimple-ssa-sprintf.c (sprintf_dom_walker): Remove virtual keyword on FINAL OVERRIDE members. 2017-11-02 08:54:58 -06:00
gimple-ssa-store-merging.c re PR tree-optimization/83086 (valgrind error in gimple-ssa-store-merging.c for recent build) 2017-11-21 14:54:08 +01:00
gimple-ssa-strength-reduction.c re PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010) 2017-09-29 14:55:14 +00:00
gimple-ssa-warn-alloca.c asan.c (handle_builtin_alloca): Deal with all alloca variants. 2017-10-19 15:58:05 +00:00
gimple-ssa.h
gimple-streamer-in.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
gimple-streamer-out.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
gimple-streamer.h
gimple-walk.c
gimple-walk.h
gimple.c PR c/81117 - Improve buffer overflow checking in strncpy 2017-11-10 09:35:26 -07:00
gimple.def
gimple.h Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
gimplify-me.c
gimplify-me.h
gimplify.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
gimplify.h
glimits.h
godump.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c graphite-dependences.c (scop_get_reads_and_writes): Change output parameters to references. 2017-10-17 13:56:14 +00:00
graphite-isl-ast-to-gimple.c re PR tree-optimization/82672 ([GRAPHITE] ICE in verify_gimple_in_cfg) 2017-10-24 07:02:48 +00:00
graphite-optimize-isl.c
graphite-poly.c
graphite-scop-detection.c [graphite] Remove semicolon after do {} while (0) in DEBUG_PRINT 2017-11-05 09:57:43 +00:00
graphite-sese-to-poly.c 2017-10-18 Richard Biener <rguenther@suse.de> 2017-10-18 13:34:00 +00:00
graphite.c 2017-10-20 Richard Biener <rguenther@suse.de> 2017-10-20 10:49:24 +00:00
graphite.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
hard-reg-set.h
hash-map-tests.c
hash-map-traits.h Support GTY((cache)) on hash_map. 2017-11-14 11:02:57 -05:00
hash-map.h Fix UB in hash-map.h 2017-11-27 12:53:16 +00:00
hash-set-tests.c
hash-set.h hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper. 2017-11-27 17:29:06 +00:00
hash-table.c
hash-table.h Support GTY((cache)) on hash_map. 2017-11-14 11:02:57 -05:00
hash-traits.h Support GTY((cache)) on hash_map. 2017-11-14 11:02:57 -05:00
highlev-plugin-common.h
hooks.c Convert STARTING_FRAME_OFFSET to a hook 2017-10-23 09:48:31 +00:00
hooks.h Convert STARTING_FRAME_OFFSET to a hook 2017-10-23 09:48:31 +00:00
host-default.c
hosthooks-def.h
hosthooks.h
hsa-brig-format.h
hsa-brig.c
hsa-builtins.def
hsa-common.c
hsa-common.h [PR 82416] Do not extend operands to at least 32 bits 2017-10-09 11:41:44 +02:00
hsa-dump.c
hsa-gen.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
hsa-regalloc.c
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c asan.c (create_cond_insert_point): Do not update edge count. 2017-10-19 20:19:15 +00:00
ifcvt.h
inchash.c
inchash.h Add wide_int version of inchash:#️⃣:add_wide_int 2017-10-22 21:04:02 +00:00
incpath.c [PATCH] Include path enumeration 2017-10-11 18:09:59 +00:00
incpath.h [PATCH] Include path enumeration 2017-10-11 18:09:59 +00:00
init-regs.c
input.c
input.h
insn-addr.h
insn-notes.def
internal-fn.c Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
internal-fn.def Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
internal-fn.h
intl.c
intl.h
ipa-chkp.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
ipa-chkp.h
ipa-comdats.c
ipa-cp.c [PR 82808] Use proper result types for arithmetic jump functions 2017-11-28 19:52:49 +01:00
ipa-devirt.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
ipa-fnsummary.c [PR 82808] Use proper result types for arithmetic jump functions 2017-11-28 19:52:49 +01:00
ipa-fnsummary.h Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
ipa-hsa.c
ipa-icf-gimple.c
ipa-icf-gimple.h
ipa-icf.c Rename inchash:#️⃣:add_wide_int 2017-10-22 20:42:06 +00:00
ipa-icf.h
ipa-inline-analysis.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
ipa-inline-transform.c cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. 2017-11-18 22:55:56 +00:00
ipa-inline.c re PR bootstrap/83015 (bootstrap comparison failure on ia64) 2017-11-24 11:24:55 +00:00
ipa-inline.h auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
ipa-param-manipulation.c Moving parameter manipulation into its own file 2017-11-09 16:31:06 +01:00
ipa-param-manipulation.h Moving parameter manipulation into its own file 2017-11-09 16:31:06 +01:00
ipa-polymorphic-call.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
ipa-predicate.c
ipa-predicate.h
ipa-profile.c ipa-profile.c (ipa_propagate_frequency_1): Use count instead of frequency. 2017-11-23 15:59:07 +00:00
ipa-prop.c [PR 82808] Use proper result types for arithmetic jump functions 2017-11-28 19:52:49 +01:00
ipa-prop.h [PR 82808] Use proper result types for arithmetic jump functions 2017-11-28 19:52:49 +01:00
ipa-pure-const.c Extend ipa-pure-const pass to propagate malloc attribute. 2017-10-27 10:48:49 +00:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. 2017-11-18 22:55:56 +00:00
ipa-utils.c auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 2017-11-14 09:18:35 +00:00
ipa-utils.h [PATCH] DECL_ASSEMBLER_NAME and friends 2017-10-11 16:35:18 +00:00
ipa-visibility.c
ipa.c
ira-build.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
ira-color.c Add narrower_subreg_mode helper function 2017-11-01 12:52:50 +00:00
ira-conflicts.c
ira-costs.c re PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant) 2017-09-29 17:39:58 +00:00
ira-emit.c
ira-int.h
ira-lives.c
ira.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
ira.h Add wider_subreg_mode helper functions 2017-10-26 16:53:43 +00:00
is-a.h
jump.c
langhooks-def.h [PATCH] New lang hook 2017-11-16 14:54:54 +00:00
langhooks.c [PATCH] New lang hook 2017-11-16 14:54:54 +00:00
langhooks.h [PATCH] New lang hook 2017-11-16 14:54:54 +00:00
LANGUAGES
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
loop-init.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
loop-invariant.c
loop-iv.c re PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530) 2017-10-24 07:26:52 +00:00
loop-unroll.c cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. 2017-11-27 11:56:36 +00:00
loop-unroll.h
lower-subreg.c Factor out the mode handling in lower-subreg.c 2017-11-01 13:51:28 +00:00
lower-subreg.h
lra-assigns.c
lra-coalesce.c
lra-constraints.c re PR rtl-optimization/81803 (miscompilation at -O1 on mips64el) 2017-10-31 18:27:52 +00:00
lra-eliminations.c
lra-int.h
lra-lives.c re PR sanitizer/82353 (runtime ubsan crash) 2017-10-16 20:34:53 +00:00
lra-remat.c
lra-spills.c Add wider_subreg_mode helper functions 2017-10-26 16:53:43 +00:00
lra.c Add wider_subreg_mode helper functions 2017-10-26 16:53:43 +00:00
lra.h
lto-cgraph.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
lto-compress.c
lto-compress.h
lto-opts.c re PR lto/81351 (Many LTO testcases FAIL) 2017-11-13 17:26:41 +00:00
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
lto-streamer-out.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
lto-streamer.c
lto-streamer.h
lto-wrapper.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
machmode.def
machmode.h Add an is_narrower_int_mode helper function 2017-11-01 13:30:34 +00:00
main.c
Makefile.in Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null on mingw build hosts. 2017-11-28 14:23:36 +00:00
match.pd re PR tree-optimization/80788 (ICE in set_value_range, at tree-vrp.c:252) 2017-11-28 09:40:36 +01:00
mcf.c
mem-stats-traits.h
mem-stats.h
memmodel.h
memory-block.cc
memory-block.h
mkconfig.sh
mode-classes.def
mode-switching.c
modulo-sched.c asan.c (create_cond_insert_point): Do not update edge count. 2017-10-19 20:19:15 +00:00
multiple_target.c
omp-builtins.def
omp-expand.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
omp-expand.h
omp-general.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
omp-general.h
omp-grid.c [hsa] Add missing guard in OMP gridification 2017-10-30 16:07:20 +01:00
omp-grid.h
omp-low.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
omp-low.h
omp-offload.c
omp-offload.h
omp-simd-clone.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
ONEWS
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-read.awk
optabs-libfuncs.c
optabs-libfuncs.h
optabs-query.c Widening optab cleanup 2017-11-01 12:30:39 +00:00
optabs-query.h Widening optab cleanup 2017-11-01 12:30:39 +00:00
optabs-tree.c Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
optabs-tree.h
optabs.c re PR middle-end/82875 (ICE at -Os on valid code on x86_64-linux-gnu: in find_widening_optab_handler_and_mode, at optabs-query.c:414) 2017-11-22 10:57:28 +01:00
optabs.def
optabs.h
optc-gen.awk
optc-save-gen.awk Rename inchash:#️⃣:add_wide_int 2017-10-22 20:42:06 +00:00
opth-gen.awk
opts-common.c
opts-diagnostic.h
opts-global.c
opts.c Set default to -fomit-frame-pointer 2017-11-16 11:44:30 +00:00
opts.h Do not error for no_sanitize attributes (PR sanitizer/82490). 2017-10-11 12:31:59 +00:00
output.h Delete obsolete SDB debug info support. 2017-10-29 15:45:41 -07:00
params-enum.h
params-list.h
params-options.h
params.c
params.def [PR 81248] Fix ipa-sra size check 2017-11-27 11:33:06 +01:00
params.h
pass_manager.h
passes.c [PATCH] DECL_ASSEMBLER_NAME and friends 2017-10-11 16:35:18 +00:00
passes.def
plugin.c Plugin support on Windows/MinGW 2017-11-26 13:00:48 +00:00
plugin.def
plugin.h
postreload-gcse.c asan.c (create_cond_insert_point): Do not update edge count. 2017-10-19 20:19:15 +00:00
postreload.c
predict.c cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. 2017-11-18 22:55:56 +00:00
predict.def
predict.h auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 2017-11-14 09:18:35 +00:00
prefix.c PR bootstrap/82948 - prefix.c:202:15: error: 'char* strncpy(char*, const char*, 2017-11-11 10:43:48 -07:00
prefix.h
pretty-print.c C/C++: fix quoting of "aka" typedef information (PR 62170) 2017-11-22 20:37:58 +00:00
pretty-print.h C/C++: fix quoting of "aka" typedef information (PR 62170) 2017-11-22 20:37:58 +00:00
print-rtl-function.c
print-rtl.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
print-rtl.h
print-tree.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
print-tree.h print-tree.h (debug_vec_tree): Remove prototype. 2017-11-21 10:06:52 +00:00
profile-count.c re PR ipa/83001 (ICE in edge_badness, at ipa-inline.c:1025) 2017-11-19 18:56:58 +00:00
profile-count.h cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. 2017-11-18 22:55:56 +00:00
profile.c auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 2017-11-14 09:18:35 +00:00
profile.h
read-md.c
read-md.h
read-rtl-function.c
read-rtl-function.h
read-rtl.c
README.Portability
real.c
real.h
realmpfr.c
realmpfr.h
recog.c tree-pass.h (PROP_rtl_split_insns): Define. 2017-10-23 22:24:34 -04:00
recog.h
ree.c Make more use of HWI_COMPUTABLE_MODE_P 2017-10-22 21:11:01 +00:00
reg-notes.def Add generic part for Intel CET enabling. The spec is available at 2017-10-20 15:09:38 +02:00
reg-stack.c tracer.c (better_p): Do not compare frequencies. 2017-11-14 09:22:49 +00:00
regcprop.c Make more use of subreg_size_lowpart_offset 2017-10-22 21:07:50 +00:00
regcprop.h
reginfo.c
regrename.c
regrename.h
regs.h asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
regset.h
regstat.c
reload1.c Add wider_subreg_mode helper functions 2017-10-26 16:53:43 +00:00
reload.c
reload.h
reorg.c re PR rtl-optimization/83030 (ICE in create_pseudo_cfg, at dwarf2cfi.c:2840) 2017-11-22 21:43:22 +00:00
resource.c
resource.h
rtl-chkp.c
rtl-chkp.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-tests.c
rtl.c
rtl.def Add a VEC_SERIES rtl code 2017-11-01 11:22:35 +00:00
rtl.h Add narrower_subreg_mode helper function 2017-11-01 12:52:50 +00:00
rtlanal.c Make more use of df_read_modify_subreg_p 2017-10-26 16:12:09 +00:00
rtlhash.c Use more specific hash functions in rtlhash.c 2017-11-01 13:35:22 +00:00
rtlhash.h
rtlhooks-def.h
rtlhooks.c Make more use of byte_lowpart_offset 2017-10-13 09:32:29 +00:00
run-rtl-passes.c re PR debug/82933 (valgrind error in set_cur_line_info_table with -g) 2017-11-21 08:50:15 +01:00
run-rtl-passes.h
sancov.c
sanitizer.def flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. 2017-10-19 14:09:52 +02:00
sanopt.c Revert last commit. 2017-10-11 12:29:13 +00:00
sbitmap.c Add gcc_checking_assert for sbitmap.c. 2017-10-17 19:17:36 +00:00
sbitmap.h Remove non needed check in bmp_iter_set_init (PR tree-optimization/82669). 2017-11-09 10:27:21 +00:00
sched-deps.c
sched-ebb.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
sched-int.h Cleanup autopref scheduling 2017-10-24 17:21:19 +00:00
sched-rgn.c
sel-sched-dump.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
sel-sched-dump.h
sel-sched-ir.c
sel-sched-ir.h
sel-sched.c
sel-sched.h
selftest-diagnostic.c Move selftest::test_diagnostic_context to its own header 2017-11-02 20:09:18 +00:00
selftest-diagnostic.h Move selftest::test_diagnostic_context to its own header 2017-11-02 20:09:18 +00:00
selftest-rtl.c Add more vec_duplicate simplifications 2017-11-01 09:41:48 +00:00
selftest-rtl.h Add more vec_duplicate simplifications 2017-11-01 09:41:48 +00:00
selftest-run-tests.c Add more vec_duplicate simplifications 2017-11-01 09:41:48 +00:00
selftest.c
selftest.h Add more vec_duplicate simplifications 2017-11-01 09:41:48 +00:00
sese.c 2017-10-18 Richard Biener <rguenther@suse.de> 2017-10-18 13:34:00 +00:00
sese.h 2017-10-18 Richard Biener <rguenther@suse.de> 2017-10-18 13:34:00 +00:00
shrink-wrap.c tracer.c (better_p): Do not compare frequencies. 2017-11-14 09:22:49 +00:00
shrink-wrap.h
signop.h
simplify-rtx.c simplify-rtx.c (simplify_binary_operation_1): Handle the case where both arguments are using gen_const_vec_series. 2017-11-22 21:48:38 +01:00
sparseset.c
sparseset.h
spellcheck-tree.c
spellcheck-tree.h
spellcheck.c
spellcheck.h C++: provide macro used-before-defined hint (PR c++/72786) 2017-11-21 00:40:53 +00:00
sreal.c
sreal.h
ssa-iterators.h Extend ipa-pure-const pass to propagate malloc attribute. 2017-10-27 10:48:49 +00:00
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
stmt.h
stor-layout.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
stor-layout.h
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
substring-locations.c diagnostics: get rid of *_at_rich_loc in favor of overloading 2017-10-31 20:21:58 +00:00
substring-locations.h Simplify format_warning_at_substring API 2017-10-17 19:41:01 +00:00
symbol-summary.h
symtab.c
sync-builtins.def
system.h Delete obsolete SDB debug info support. 2017-10-29 15:45:41 -07:00
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def target-insns.def: Add memory_blockage. 2017-10-14 11:10:45 +02:00
target.def re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
target.h target.h (enum vect_cost_for_stmt): Add vec_gather_load and vec_scatter_store 2017-10-17 17:35:54 +00:00
targhooks.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
targhooks.h re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
timevar.c
timevar.def
timevar.h
tlink.c
toplev.c re PR lto/81351 (Many LTO testcases FAIL) 2017-11-13 17:26:41 +00:00
toplev.h
tracer.c tracer.c (better_p): Do not compare frequencies. 2017-11-14 09:22:49 +00:00
tracer.h
trans-mem.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
trans-mem.h
tree-affine.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
tree-affine.h
tree-call-cdce.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-cfg.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
tree-cfg.h
tree-cfgcleanup.c tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p paramter and handling. 2017-11-14 14:43:43 +00:00
tree-cfgcleanup.h
tree-chkp-opt.c
tree-chkp.c auto-profile.c (afdo_indirect_call): Drop frequency. 2017-11-10 20:14:52 +00:00
tree-chkp.h
tree-chrec.c tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. 2017-10-11 13:18:46 +00:00
tree-chrec.h tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. 2017-10-11 13:18:46 +00:00
tree-complex.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-core.h Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
tree-data-ref.c re PR tree-optimization/82451 ([GRAPHITE] codegen error in get_rename_from_scev) 2017-10-13 07:02:55 +00:00
tree-data-ref.h re PR tree-optimization/82451 ([GRAPHITE] codegen error in get_rename_from_scev) 2017-10-13 07:02:55 +00:00
tree-dfa.c tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT. 2017-10-02 17:48:55 +02:00
tree-dfa.h
tree-diagnostic.c C/C++: fix quoting of "aka" typedef information (PR 62170) 2017-11-22 20:37:58 +00:00
tree-diagnostic.h C/C++: fix quoting of "aka" typedef information (PR 62170) 2017-11-22 20:37:58 +00:00
tree-dump.c [PATCH] fix fdump-lang-raw ICE 2017-11-01 19:26:46 +00:00
tree-dump.h
tree-eh.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-eh.h
tree-emutls.c tree-emutls.c (lower_emutls_data): Remove unused bb_freq. 2017-11-16 16:53:50 +00:00
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c re PR tree-optimization/83089 (ICE: Segmentation fault (in instantiate_scev_name)) 2017-11-22 08:47:47 +00:00
tree-if-conv.h
tree-inline.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
tree-inline.h
tree-into-ssa.c graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. 2017-10-06 07:06:17 +00:00
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. 2017-10-18 16:04:16 +00:00
tree-nested.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
tree-nested.h
tree-nrv.c
tree-object-size.c tree-object-size.c (pass_through_call): Use gimple_call_return_flags ERF_RETURN*ARG* for builtins other than... 2017-11-24 09:34:13 +01:00
tree-object-size.h
tree-outof-ssa.c tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
tree-outof-ssa.h re PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530) 2017-10-24 07:26:52 +00:00
tree-parloops.c re PR fortran/83017 (DO CONCURRENT not parallelizing) 2017-11-17 13:15:34 +00:00
tree-parloops.h
tree-pass.h tree-pass.h (PROP_rtl_split_insns): Define. 2017-10-23 22:24:34 -04:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c tree-predcom.c: Add general comment on Store-Store chains. 2017-11-20 14:20:08 +00:00
tree-pretty-print.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
tree-pretty-print.h
tree-profile.c
tree-scalar-evolution.c 2017-10-17 Richard Biener <rguenther@suse.de> 2017-10-17 13:19:51 +00:00
tree-scalar-evolution.h re PR tree-optimization/82451 ([GRAPHITE] codegen error in get_rename_from_scev) 2017-10-13 07:02:55 +00:00
tree-sra.c [PR 81248] Fix ipa-sra size check 2017-11-27 11:33:06 +01:00
tree-ssa-address.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
tree-ssa-address.h
tree-ssa-alias.c asan.c (handle_builtin_alloca): Deal with all alloca variants. 2017-10-19 15:58:05 +00:00
tree-ssa-alias.h Don't treat zero-sized ranges as overlapping 2017-11-01 15:08:32 +00:00
tree-ssa-ccp.c tree-ssa-ccp.c (ccp_folder): New class derived from substitute_and_fold_engine. 2017-11-01 16:52:34 -06:00
tree-ssa-ccp.h
tree-ssa-coalesce.c * tree-ssa-coalesce.c (coalesce_cost): Fix formating. 2017-11-13 17:28:01 +00:00
tree-ssa-coalesce.h tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
tree-ssa-copy.c tree-ssa-ccp.c (ccp_folder): New class derived from substitute_and_fold_engine. 2017-11-01 16:52:34 -06:00
tree-ssa-dce.c asan.c (create_cond_insert_point): Do not update edge count. 2017-10-19 20:19:15 +00:00
tree-ssa-dom.c tree-ssa-dom.c (record_equivalences_from_phis): Fix handling of degenerates resulting from ignoring an edge. 2017-11-19 13:15:45 -07:00
tree-ssa-dom.h
tree-ssa-dse.c Make tree-ssa-dse.c:normalize_ref return a bool 2017-11-01 15:44:18 +00:00
tree-ssa-forwprop.c re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior) 2017-10-14 20:47:14 +02:00
tree-ssa-ifcombine.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-ssa-live.c
tree-ssa-live.h
tree-ssa-loop-ch.c
tree-ssa-loop-im.c * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum. 2017-11-11 13:06:07 +00:00
tree-ssa-loop-ivcanon.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
tree-ssa-loop-ivopts.c Improve ivopts handling of forced scales 2017-11-09 14:51:57 +00:00
tree-ssa-loop-ivopts.h tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. 2017-10-18 16:04:16 +00:00
tree-ssa-loop-manip.c * tree-ssa-loop-manip.c 2017-11-16 11:06:49 +00:00
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c re PR tree-optimization/82451 ([GRAPHITE] codegen error in get_rename_from_scev) 2017-10-13 07:02:55 +00:00
tree-ssa-loop-split.c asan.c (create_cond_insert_point): Do not update edge count. 2017-10-19 20:19:15 +00:00
tree-ssa-loop-unswitch.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-ssa-loop.c
tree-ssa-loop.h
tree-ssa-math-opts.c Factor out division by squares 2017-11-24 16:03:13 +00:00
tree-ssa-operands.c
tree-ssa-operands.h
tree-ssa-phionlycprop.c asan.c (create_cond_insert_point): Do not update edge count. 2017-10-19 20:19:15 +00:00
tree-ssa-phiopt.c re PR tree-optimization/82697 (Wrong optimization with aliasing and "if") 2017-10-24 13:51:45 +00:00
tree-ssa-phiprop.c re PR tree-optimization/82902 (ICE verify_ssa failed during GIMPLE pass: phiprop) 2017-11-09 12:22:32 +00:00
tree-ssa-pre.c re PR tree-optimization/81403 (wrong code at -O3) 2017-11-23 08:30:41 +00:00
tree-ssa-propagate.c tree-ssa-ccp.c (ccp_folder): New class derived from substitute_and_fold_engine. 2017-11-01 16:52:34 -06:00
tree-ssa-propagate.h gimple-ssa-sprintf.c (sprintf_dom_walker): Remove virtual keyword on FINAL OVERRIDE members. 2017-11-02 08:54:58 -06:00
tree-ssa-reassoc.c builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and... 2017-10-27 18:15:38 +00:00
tree-ssa-sccvn.c re PR tree-optimization/83128 (Unable to optimize {m,c}alloc when strings builtin are used) 2017-11-24 09:40:40 +00:00
tree-ssa-sccvn.h tree-ssa-sccvn.h (vn_eliminate): Declare. 2017-10-25 10:20:37 +00:00
tree-ssa-scopedtables.c
tree-ssa-scopedtables.h
tree-ssa-sink.c * tree-ssa-sink.c (select_best_block): Do not use frequencies. 2017-11-13 17:27:13 +00:00
tree-ssa-strlen.c PR tree-optimization/82945 - add warning for passing non-strings to functions that expect string arguments 2017-11-21 13:01:58 -07:00
tree-ssa-structalias.c [PATCH] DECL_ASSEMBLER_NAME and friends 2017-10-11 16:35:18 +00:00
tree-ssa-tail-merge.c tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile merging. 2017-11-11 12:58:13 +00:00
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadbackward.c tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix typo in comment. 2017-11-21 11:39:51 +00:00
tree-ssa-threadedge.c
tree-ssa-threadedge.h
tree-ssa-threadupdate.c tree-ssa-threadupdate.c (thread_through_all_blocks): Thread blocks is post order. 2017-11-14 20:45:03 -07:00
tree-ssa-threadupdate.h
tree-ssa-uncprop.c cfganal.c (single_pred_edge_ignoring_loop_edges): New function extracted from tree-ssa-dom.c. 2017-11-03 10:28:28 -06:00
tree-ssa-uninit.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
tree-ssa.c
tree-ssa.h
tree-ssanames.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
tree-ssanames.h
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
tree-streamer-out.c re PR c++/60336 (empty struct value is passed differently in C and C++) 2017-11-22 16:06:18 +00:00
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
tree-tailcall.c tree-tailcall.c (eliminate_tail_call): Be more careful about not disturbin profile of entry block. 2017-11-17 17:44:41 +00:00
tree-vect-data-refs.c re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses) 2017-10-06 09:27:09 +00:00
tree-vect-generic.c
tree-vect-loop-manip.c re PR tree-optimization/82402 (error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set) 2017-11-24 12:34:23 +00:00
tree-vect-loop.c Replace REDUC_*_EXPRs with internal functions. 2017-11-22 19:33:31 +00:00
tree-vect-patterns.c Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
tree-vect-slp.c re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410) 2017-10-06 07:03:23 +00:00
tree-vect-stmts.c New POINTER_DIFF_EXPR 2017-11-21 18:23:56 +00:00
tree-vectorizer.c
tree-vectorizer.h
tree-vrp.c re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable) 2017-11-28 14:58:11 +00:00
tree-vrp.h re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable) 2017-11-28 14:58:11 +00:00
tree.c re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:22:52 +01:00
tree.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
tree.h re PR sanitizer/81275 (-fsanitize=thread produce incorrect -Wreturn-type warning) 2017-11-28 22:22:52 +01:00
treestruct.def
tsan.c
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c
typed-splay-tree.h
ubsan.c re PR sanitizer/83014 (ICE in pretty-print with -fsanitize=bounds) 2017-11-24 09:35:10 +01:00
ubsan.h
unique-ptr-tests.cc Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610) 2017-10-23 20:25:58 +00:00
valtrack.c re PR debug/83084 (-fcompare-debug failure on ppc64le) 2017-11-22 11:02:19 +01:00
valtrack.h
value-prof.c auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 2017-11-14 09:18:35 +00:00
value-prof.h asan.c (create_cond_insert_point): Maintain profile. 2017-11-03 15:42:30 +00:00
var-tracking.c Turn var-tracking.c:INT_MEM_OFFSET into a function 2017-11-01 13:56:09 +00:00
varasm.c [gcc] 2017-11-27 19:45:56 +00:00
varasm.h
varpool.c
vec.c qsort comparator consistency checking 2017-09-29 19:00:15 +03:00
vec.h hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper. 2017-11-27 17:29:06 +00:00
version.c
version.h
vmsdbg.h
vmsdbgout.c [vms] Add missing vmsdbgout_early_finish 2017-11-18 23:30:50 +00:00
vr-values.c * gimple-ssa-evrp-analyze.c 2017-11-28 11:21:10 -07:00
vr-values.h gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Use new method allocate_value_range rather than accessing the... 2017-11-22 17:04:07 -07:00
vtable-verify.c
vtable-verify.h
web.c
wide-int-print.cc Stop print_hex from printing bits above the precision 2017-10-26 16:09:17 +00:00
wide-int-print.h
wide-int.cc PR82547: Undetected overflow for UNSIGNED wide_ints 2017-11-22 13:58:57 +00:00
wide-int.h Require wi::to_wide for trees 2017-10-10 16:55:34 +00:00
xcoff.h
xcoffout.c Delete obsolete SDB debug info support. 2017-10-29 15:45:41 -07:00
xcoffout.h

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

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.