gcc/gcc
Ankur Saini e92d0ff6b5 analyzer: Fix PR analyzer/101980
2021-08-19  Ankur Saini  <arsenic@sourceware.org>

gcc/analyzer/ChangeLog:
	PR analyzer/101980
	* diagnostic-manager.cc
	(diagnostic_manager::prune_for_sm_diagnostic)<case EK_CALL_EDGE>: Use
	caller_model only when the supergraph_edge doesn't exixt.
	(diagnostic_manager::prune_for_sm_diagnostic)<case EK_RETURN_EDGE>:
	Likewise.
	* engine.cc (exploded_graph::create_dynamic_call): Rename to...
	(exploded_graph::maybe_create_dynamic_call): ...this, return call
	creation status.
	(exploded_graph::process_node): Handle calls which were not dynamically
	discovered.
	* exploded-graph.h (exploded_graph::create_dynamic_call): Rename to...
	(exploded_graph::maybe_create_dynamic_call): ...this.
	* region-model.cc (region_model::update_for_gcall): New param, use it
	to push call to frame.
	(region_model::update_for_call_superedge): Pass callee function to
	update_for_gcall.
	* region-model.h (region_model::update_for_gcall): New param.

gcc/testsuite/ChangeLog:
	PR analyzer/101980
	* gcc.dg/analyzer/function-ptr-2.c : Add issue for double 'free'.
	* gcc.dg/analyzer/malloc-callbacks.c : Fix xfail testcase.
2021-08-21 10:33:54 +05:30
..
ada Daily bump. 2021-08-20 00:16:28 +00:00
analyzer analyzer: Fix PR analyzer/101980 2021-08-21 10:33:54 +05:30
c Daily bump. 2021-08-21 00:16:29 +00:00
c-family Daily bump. 2021-08-21 00:16:29 +00:00
common arc: Small data doesn't need fcommon option 2021-08-12 15:31:47 +03:00
config Further improvements to constant shifts for the H8 2021-08-20 11:19:05 -04:00
cp Daily bump. 2021-08-21 00:16:29 +00:00
d Daily bump. 2021-08-03 07:49:16 +00:00
doc Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
fortran Daily bump. 2021-08-21 00:16:29 +00:00
ginclude
go libgo: various fixes for Solaris support 2021-08-14 17:34:52 -07:00
jit Daily bump. 2021-08-20 00:16:28 +00:00
lto Daily bump. 2021-06-01 00:16:37 +00:00
objc Daily bump. 2021-08-20 00:16:28 +00:00
objcp Fix my e-mail in the ChangeLog 2021-06-09 12:59:52 +02:00
po Daily bump. 2021-08-03 07:49:16 +00:00
rtl-ssa
testsuite analyzer: Fix PR analyzer/101980 2021-08-21 10:33:54 +05:30
ABOUT-GCC-NLS
BASE-VER
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog Daily bump. 2021-08-21 00:16:29 +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-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020
ChangeLog.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
DATESTAMP Daily bump. 2021-08-21 00:16:29 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in Abstract tracing routines into a class. 2021-08-17 19:28:42 -04:00
ONEWS
README.Portability
acinclude.m4 configure: remove version argument from gcc_GAS_CHECK_FEATURE 2021-08-21 00:10:20 +03:00
aclocal.m4
addresses.h
adjust-alignment.c
alias.c Don't skip prologue/epilogue when initializing alias. 2021-07-28 17:44:35 +08:00
alias.h
align.h
alloc-pool.c
alloc-pool.h
array-traits.h
asan.c
asan.h Add no_sanitize_coverage attribute. 2021-05-25 14:56:28 +02:00
attr-fnspec.h
attribs.c ipa: "naked" attribute implies "noipa" attribute 2021-08-13 16:04:26 +02:00
attribs.h Add new gimple-ssa-warn-access pass. 2021-07-28 16:02:17 -06:00
auto-inc-dec.c
auto-profile.c Fix indirect call inlining with AutoFDO 2021-08-03 14:36:33 -07:00
auto-profile.h
backend.h
basic-block.h
bb-reorder.c
bb-reorder.h
bitmap.c Implement multi-bit aligned accessors for sparse bitmap. 2021-06-07 17:31:01 -04:00
bitmap.h Implement multi-bit aligned accessors for sparse bitmap. 2021-06-07 17:31:01 -04:00
btfout.c BTF: Support for BTF_KIND_FLOAT 2021-07-02 08:32:44 -07:00
builtin-attrs.def
builtin-types.def
builtins.c Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
builtins.def Don't consider '-foffload-abi' in 'DEF_GOACC_BUILTIN', 'DEF_GOMP_BUILTIN' 2021-08-09 13:39:38 +02:00
builtins.h Move more code to new gimple-ssa-warn-access pass. 2021-08-06 16:08:36 -06:00
caller-save.c Remove CC0 2021-05-04 13:53:50 +00:00
calls.c Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
calls.h Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
ccmp.c
ccmp.h
cfg-flags.def
cfg.c
cfg.h
cfganal.c
cfganal.h
cfgbuild.c
cfgbuild.h
cfgcleanup.c return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
cfgcleanup.h
cfgexpand.c Small tweak to expand_used_vars 2021-08-11 15:34:15 +02:00
cfgexpand.h
cfghooks.c
cfghooks.h
cfgloop.c cfgloop: Make loops_list support an optional loop_p root 2021-08-05 03:44:20 -05:00
cfgloop.h cfgloop: Make loops_list support an optional loop_p root 2021-08-05 03:44:20 -05:00
cfgloopanal.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
cfgloopmanip.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
cfgloopmanip.h
cfgrtl.c Remove CC0 2021-05-04 13:53:50 +00:00
cfgrtl.h
cgraph.c ipa-sra: Restructure how cloning and call redirection communicate (PR 93385) 2021-06-28 18:24:34 +02:00
cgraph.h ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
cgraphbuild.c
cgraphclones.c ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
cgraphunit.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
cif-code.def
collect-utils.c
collect-utils.h
collect2-aix.c
collect2-aix.h
collect2.c Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
collect2.h
color-macros.h
combine-stack-adj.c
combine.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
common.md
common.opt Don't consider '-foffload-abi' in 'DEF_GOACC_BUILTIN', 'DEF_GOMP_BUILTIN' 2021-08-09 13:39:38 +02:00
compare-elim.c Minor improvement to compare elimination 2021-06-15 12:43:42 -04:00
conditions.h Remove CC0 2021-05-04 13:53:50 +00:00
config.build
config.gcc Drop stabs from h8/300 and v850 ports 2021-08-19 14:15:03 -04:00
config.host
config.in Darwin, X86, config: Adjust 'as' command lines [PR100340]. 2021-08-17 19:38:05 +01:00
configure configure: remove gas versions from tls check 2021-08-21 00:10:21 +03:00
configure.ac configure: remove gas versions from tls check 2021-08-21 00:10:21 +03:00
context.c
context.h
convert.c
convert.h
coretypes.h
coroutine-builtins.def
coroutine-passes.cc
coverage.c gcov: Add TARGET_GCOV_TYPE_SIZE target hook 2021-08-16 15:34:25 +02:00
coverage.h
cppbuiltin.c
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c Remove CC0 2021-05-04 13:53:50 +00:00
cse.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
cselib.c Remove CC0 2021-05-04 13:53:50 +00:00
cselib.h
cstamp-h.in
ctfc.c CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
ctfc.h CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
ctfout.c bootstrap: Include memmodel.h in btfout.c and ctfout.c before tm_p.h 2021-06-29 15:10:17 +00:00
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
dbgcnt.c
dbgcnt.def Fix 101256: Wrong code due to range incorrect from PHI-OPT 2021-07-06 00:32:40 -07:00
dbgcnt.h
dbxout.c dwarf: new dwarf_debuginfo_p predicate 2021-05-20 12:39:33 -07:00
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
debug.h Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
defaults.h Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
df-core.c
df-problems.c Remove CC0 2021-05-04 13:53:50 +00:00
df-scan.c df: Fix up handling of paradoxical subregs in debug insns [PR101170] 2021-06-24 12:24:48 +02:00
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic-event-id.h
diagnostic-format-json.cc
diagnostic-metadata.h
diagnostic-path.h
diagnostic-show-locus.c diagnostic-show-locus: tweak rejection logic 2021-06-03 10:32:40 -04:00
diagnostic-spec.c Move more code to new gimple-ssa-warn-access pass. 2021-08-06 16:08:36 -06:00
diagnostic-spec.h Add support for per-location warning groups. 2021-06-24 19:23:42 -06:00
diagnostic-url.h
diagnostic.c Improve warning suppression for inlined functions [PR98512]. 2021-07-02 16:19:35 -06:00
diagnostic.def
diagnostic.h Improve warning suppression for inlined functions [PR98512]. 2021-07-02 16:19:35 -06:00
digraph.cc
digraph.h
dojump.c
dojump.h
dominance.c Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
dominance.h Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
domwalk.c
domwalk.h
double-int.c
double-int.h
dse.c
dump-context.h produce simple DOT graphs from SLP trees 2021-07-12 16:47:45 +02:00
dumpfile.c produce simple DOT graphs from SLP trees 2021-07-12 16:47:45 +02:00
dumpfile.h
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
dwarf2ctf.c dwarf2ctf: the unit of sou field location is bits [PR101283] 2021-07-06 14:07:39 -07:00
dwarf2ctf.h CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
dwarf2out.c Fix regression in debug info for Ada with DWARF 5 2021-08-16 15:27:42 +02:00
dwarf2out.h debug/101473 - apply debug prefix maps before checksumming DIEs 2021-07-20 12:49:59 +02:00
early-remat.c
edit-context.c
edit-context.h
emit-rtl.c Remove CC0 2021-05-04 13:53:50 +00:00
emit-rtl.h
errors.c
errors.h
escaped_string.h
et-forest.c
et-forest.h
except.c except: remove dwarf2out.h dependency 2021-06-26 00:17:43 -04:00
except.h
exec-tool.in Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
explow.c
explow.h
expmed.c expmed: Fix store_integral_bit_field [PR101562] 2021-07-23 19:55:16 +02:00
expmed.h
expr.c by_pieces: Pass MAX_PIECES to op_by_pieces_d 2021-08-04 06:24:46 -07:00
expr.h Add QI vector mode support to by-pieces for memset 2021-07-30 10:34:19 -07:00
fibonacci_heap.c
fibonacci_heap.h
file-find.c
file-find.h
file-prefix-map.c
file-prefix-map.h
final.c CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
fixed-value.c
fixed-value.h
flag-types.h Change evrp-mode options. 2021-08-17 19:28:43 -04:00
flags.h debug: Add new function ctf_debuginfo_p 2021-07-19 10:34:22 -07:00
fold-const-call.c [PATCH] PR middle-end/53267: Constant fold BUILT_IN_FMOD. 2021-06-09 11:25:34 -04:00
fold-const-call.h
fold-const.c middle-end/101858 - avoid shift of pointer in folding 2021-08-11 12:55:24 +02:00
fold-const.h [PATCH] PR tree-optimization/96392 Optimize x+0.0 if x is an integer 2021-06-11 17:42:14 +01:00
fp-test.c
function-abi.cc
function-abi.h
function-tests.c Implement generic expression evaluator for range_query. 2021-06-03 17:47:27 +02:00
function.c Attach MEM_EXPR information when flushing BLKmode args to the stack - V2 2021-07-20 14:54:15 -04:00
function.h Common API for accessing global and on-demand ranges. 2021-05-26 21:26:54 +02:00
fwprop.c Remove CC0 2021-05-04 13:53:50 +00:00
gcc-ar.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h
gcc-symtab.h
gcc.c driver/101383 - handle -gtoggle in driver 2021-07-15 07:56:08 +02:00
gcc.h
gcov-counter.def
gcov-dump.c
gcov-io.c gcov: Add __gcov_info_to_gdca() 2021-08-06 07:28:26 +02:00
gcov-io.h gcov: Add __gcov_info_to_gdca() 2021-08-06 07:28:26 +02:00
gcov-tool.c
gcov.c gcov: fix output location for JSON mode. 2021-08-20 10:07:03 +02:00
gcse-common.c Remove CC0 2021-05-04 13:53:50 +00:00
gcse-common.h
gcse.c tree-optimization/101373 - avoid PRE across externally throwing call 2021-07-12 16:47:45 +02:00
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
genautomata.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
gencfn-macros.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
gencheck.c
genchecksum.c
gencodes.c
genconditions.c
genconfig.c Remove CC0 2021-05-04 13:53:50 +00:00
genconstants.c
genemit.c Remove CC0 2021-05-04 13:53:50 +00:00
genenums.c
generic-match-head.c
generic-match.h
genextract.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
genflags.c gcc/genflags.c: Improve error message 2021-04-30 12:19:07 +00:00
gengenrtl.c Remove CC0 2021-05-04 13:53:50 +00:00
gengtype-lex.l
gengtype-parse.c
gengtype-state.c Support scanning of build-time GC roots in gengtype 2021-07-16 12:51:46 -04:00
gengtype.c Support scanning of build-time GC roots in gengtype 2021-07-16 12:51:46 -04:00
gengtype.h Support scanning of build-time GC roots in gengtype 2021-07-16 12:51:46 -04:00
genhooks.c genhooks: remove dead code 2021-06-06 19:05:46 +02:00
genmatch.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
genmddeps.c
genmddump.c
genmodes.c
genmultilib
genopinit.c
genoutput.c Improve message for wrong number of alternatives. 2021-05-17 13:44:49 +01:00
genpeep.c
genpreds.c Change the type of predicates to bool. 2021-07-01 15:19:28 +02:00
genrecog.c Remove CC0 2021-05-04 13:53:50 +00:00
gensupport.c Fix match_dup bug of define_cond_exec. 2021-05-28 07:46:28 +01:00
gensupport.h
gentarget-def.c
genversion.c Use genversion to generate version.h. 2021-05-10 09:13:46 +02:00
ggc-common.c Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
ggc-internal.h Turn global 'ggc_force_collect' variable into 'force_collect' parameter to 'ggc_collect' 2021-08-17 21:00:10 +02:00
ggc-none.c
ggc-page.c Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
ggc-tests.c Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
ggc.h Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
gimple-array-bounds.cc Correct -Warray-bounds handling if function pointers [PR101601]. 2021-07-28 16:14:38 -06:00
gimple-array-bounds.h Pass gimple context to array_bounds_checker. 2021-07-26 11:55:24 +02:00
gimple-builder.c
gimple-builder.h
gimple-expr.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-expr.h
gimple-fold.c Move more code to new gimple-ssa-warn-access pass. 2021-08-06 16:08:36 -06:00
gimple-fold.h
gimple-if-to-switch.cc
gimple-isel.cc
gimple-iterator.c
gimple-iterator.h
gimple-laddress.c
gimple-loop-interchange.cc Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
gimple-loop-jam.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
gimple-loop-versioning.cc Replace evrp use in loop versioning with ranger. 2021-07-30 11:28:51 +02:00
gimple-low.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimple-low.h
gimple-match-head.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
gimple-match.h
gimple-predict.h
gimple-pretty-print.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimple-pretty-print.h
gimple-range-cache.cc Change evrp-mode options. 2021-08-17 19:28:43 -04:00
gimple-range-cache.h Abstract tracing routines into a class. 2021-08-17 19:28:42 -04:00
gimple-range-edge.cc Make TRUE/FALSE edge calculation available without the outgoing edge class. 2021-05-07 15:00:21 -04:00
gimple-range-edge.h Make TRUE/FALSE edge calculation available without the outgoing edge class. 2021-05-07 15:00:21 -04:00
gimple-range-fold.cc Abstract tracing routines into a class. 2021-08-17 19:28:42 -04:00
gimple-range-fold.h Add gimple_range_type for statements. 2021-07-15 15:58:11 -04:00
gimple-range-gori.cc Add GORI tracing faciltiies. 2021-08-17 19:28:43 -04:00
gimple-range-gori.h Add GORI tracing faciltiies. 2021-08-17 19:28:43 -04:00
gimple-range-path.cc Implement basic block path solver. 2021-07-27 12:01:37 +02:00
gimple-range-path.h Mark path_range_query::dump as override. 2021-08-04 10:57:11 +02:00
gimple-range-tests.cc Implement generic expression evaluator for range_query. 2021-06-03 17:47:27 +02:00
gimple-range-trace.cc Abstract tracing routines into a class. 2021-08-17 19:28:42 -04:00
gimple-range-trace.h Change evrp-mode options. 2021-08-17 19:28:43 -04:00
gimple-range.cc Document enable_ranger and disable_ranger. 2021-08-19 12:49:40 -06:00
gimple-range.h Document enable_ranger and disable_ranger. 2021-08-19 12:49:40 -06:00
gimple-ssa-backprop.c
gimple-ssa-evrp-analyze.c
gimple-ssa-evrp-analyze.h
gimple-ssa-evrp.c evrp: fix AddressSanitizer: alloc-dealloc-mismatch 2021-06-14 10:22:36 +02:00
gimple-ssa-isolate-paths.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-ssa-nonnull-compare.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-ssa-split-paths.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
gimple-ssa-sprintf.c Add new gimple-ssa-warn-access pass. 2021-07-28 16:02:17 -06:00
gimple-ssa-store-merging.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
gimple-ssa-strength-reduction.c
gimple-ssa-warn-access.cc Release resources acquired by enable_ranger() [PR101984]. 2021-08-19 12:42:28 -06:00
gimple-ssa-warn-access.h Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
gimple-ssa-warn-alloca.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
gimple-ssa-warn-restrict.c Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
gimple-ssa-warn-restrict.h middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple-walk.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimple-walk.h
gimple.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimple.def openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimple.h openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimplify-me.c
gimplify-me.h
gimplify.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimplify.h
glimits.h
godump.c godump: Fix -fdump-go-spec= reproduceability issue [PR101407] 2021-07-14 10:22:50 +02:00
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c
graphite-isl-ast-to-gimple.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
graphite-optimize-isl.c
graphite-poly.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
graphite-scop-detection.c
graphite-sese-to-poly.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
graphite.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
graphite.h
graphviz.cc
graphviz.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c Improve diff-ability of scheduler logs 2021-08-17 10:05:20 +00:00
hard-reg-set.h
hash-map-tests.c Make 'gcc/hash-map-tests.c:test_map_of_type_with_ctor_and_dtor_expand' work on 32-bit architectures [PR101959] 2021-08-18 18:34:31 +02:00
hash-map-traits.h
hash-map.h PR other/100463 - many errors using GTY and hash_map 2021-05-27 13:37:43 -06:00
hash-set-tests.c
hash-set.h
hash-table.c
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.c Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
hooks.h Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
host-default.c
hosthooks-def.h
hosthooks.h
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
ifcvt.h
inchash.c
inchash.h
incpath.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
incpath.h
init-regs.c
input.c input.c: move file caching globals to a new file_cache class 2021-07-01 17:44:51 -04:00
input.h input.c: move file caching globals to a new file_cache class 2021-07-01 17:44:51 -04:00
insn-addr.h
insn-notes.def
int-vector-builder.h
internal-fn.c vect: Recog mul_highpart pattern [PR100696] 2021-07-19 20:49:17 -05:00
internal-fn.def vect: Recog mul_highpart pattern [PR100696] 2021-07-19 20:49:17 -05:00
internal-fn.h c++/88601 - [C/C++] __builtin_shufflevector support 2021-05-31 08:46:04 +02:00
intl.c
intl.h intl: add comments to _, N_, and G_ 2021-05-14 12:11:12 -04:00
ipa-comdats.c
ipa-cp.c ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
ipa-devirt.c ipa-devirt: check precision mismatch of enum values [PR101396] 2021-07-30 15:43:38 +08:00
ipa-fnsummary.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
ipa-fnsummary.h
ipa-free-lang-data.cc
ipa-icf-gimple.c ipa: ICF should check SSA_NAME_IS_DEFAULT_DEF 2021-08-16 09:53:11 +02:00
ipa-icf-gimple.h
ipa-icf.c ipa: Get rid of IPA_NODE_REF and IPA_EDGE_REF 2021-05-10 16:24:08 +02:00
ipa-icf.h icf: Fix memory leak of a vector. 2021-06-02 08:46:24 +02:00
ipa-inline-analysis.c
ipa-inline-transform.c
ipa-inline.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-inline.h
ipa-modref-tree.c
ipa-modref-tree.h
ipa-modref.c Introduce EAF_NOREAD and cleanup EAF_UNUSED + ipa-modref 2021-08-13 10:04:52 +02:00
ipa-modref.h Introduce EAF_NOREAD and cleanup EAF_UNUSED + ipa-modref 2021-08-13 10:04:52 +02:00
ipa-param-manipulation.c ipa-sra: Introduce a mini-DCE to tree-inline.c (PR 93385) 2021-06-28 18:24:54 +02:00
ipa-param-manipulation.h ipa-sra: Introduce a mini-DCE to tree-inline.c (PR 93385) 2021-06-28 18:24:54 +02:00
ipa-polymorphic-call.c
ipa-predicate.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-predicate.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-profile.c ipa: Get rid of IPA_NODE_REF and IPA_EDGE_REF 2021-05-10 16:24:08 +02:00
ipa-prop.c ipa: Fix testsuite/gcc.dg/ipa/remref-6.c 2021-08-09 17:36:12 +02:00
ipa-prop.h Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
ipa-pure-const.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c Fix condition testing void functions in ipa-split. 2021-08-12 20:52:54 +02:00
ipa-sra.c ipa-sra: Fix thinko when overriding safe_to_import_accesses (PR 101066) 2021-07-08 19:45:16 +02:00
ipa-utils.c
ipa-utils.h
ipa-visibility.c
ipa.c
ira-build.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ira-color.c
ira-conflicts.c ira: Support more matching constraint forms with param [PR100328] 2021-07-05 20:53:19 -05:00
ira-costs.c Remove CC0 2021-05-04 13:53:50 +00:00
ira-emit.c
ira-int.h ira: Support more matching constraint forms with param [PR100328] 2021-07-05 20:53:19 -05:00
ira-lives.c
ira.c ira: Support more matching constraint forms with param [PR100328] 2021-07-05 20:53:19 -05:00
ira.h
is-a.h
iterator-utils.h
json.cc
json.h
jump.c Remove CC0 2021-05-04 13:53:50 +00:00
langhooks-def.h middle-end/AArch64: Fix bootstrap after vec changes 2021-08-06 12:21:05 +01:00
langhooks.c middle-end/AArch64: Fix bootstrap after vec changes 2021-08-06 12:21:05 +01:00
langhooks.h middle-end/AArch64: Fix bootstrap after vec changes 2021-08-06 12:21:05 +01:00
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
loop-init.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
loop-invariant.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
loop-iv.c
loop-unroll.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
loop-unroll.h
lower-subreg.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
lower-subreg.h
lra-assigns.c
lra-coalesce.c
lra-constraints.c lra: Fix s/otput/output/ typo in debug output 2021-08-08 21:37:20 +01:00
lra-eliminations.c Remove CC0 2021-05-04 13:53:50 +00:00
lra-int.h
lra-lives.c
lra-remat.c
lra-spills.c
lra.c
lra.h
lto-cgraph.c
lto-compress.c
lto-compress.h
lto-opts.c Add 'default' to -foffload=; document that flag [PR67300] 2021-06-29 16:00:04 +02:00
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c
lto-streamer-out.c
lto-streamer.c
lto-streamer.h Use genversion to generate version.h. 2021-05-10 09:13:46 +02:00
lto-wrapper.c Add 'default' to -foffload=; document that flag [PR67300] 2021-06-29 16:00:04 +02:00
machmode.def
machmode.h
main.c
match.pd Fold (X<<C1)^(X<<C2) to a multiplication when possible. 2021-08-04 14:22:51 +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 Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
multiple_target.c ipa: make target_clone default decl local [PR101726] 2021-08-16 09:53:41 +02:00
mux-utils.h
obstack-utils.h
omp-builtins.def openmp: Implement the error directive 2021-08-20 11:36:52 +02:00
omp-expand.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
omp-expand.h
omp-general.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
omp-general.h [OpenACC privatization] Largely extend diagnostics and corresponding testsuite coverage [PR90115] 2021-05-21 20:09:59 +02:00
omp-low.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
omp-low.h
omp-oacc-kernels-decompose.cc
omp-oacc-neuter-broadcast.cc Plug 'par' memory leak in 'gcc/omp-oacc-neuter-broadcast.cc:execute_omp_oacc_neuter_broadcast' 2021-08-16 12:10:01 +02:00
omp-offload.c [OpenACC] Extract 'pass_oacc_loop_designation' out of 'pass_oacc_device_lower' 2021-07-29 09:19:44 +02:00
omp-offload.h
omp-simd-clone.c
omp-simd-clone.h
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-problem.cc
opt-problem.h
opt-read.awk
opt-suggestions.c
opt-suggestions.h
optabs-libfuncs.c
optabs-libfuncs.h
optabs-query.c Fall back to masked_gather_load/masked_scatter_store 2021-08-17 18:54:24 +02:00
optabs-query.h
optabs-tree.c Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs-tree.h Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs.c expand: Add new clrsb fallback expansion [PR101950] 2021-08-19 11:00:27 +02:00
optabs.def Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs.h
optc-gen.awk Sanity check that 'Init' doesn't appear without 'Var' in '*.opt' files 2021-08-09 13:38:14 +02:00
optc-save-gen.awk arm: Revert partially ebd5e86c0f 2021-06-23 15:30:17 +02:00
opth-gen.awk
optinfo-emit-json.cc
optinfo-emit-json.h
optinfo.cc
optinfo.h
opts-common.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
opts-diagnostic.h
opts-global.c
opts.c opts: do not repeat a string in errors 2021-08-13 15:43:36 +02:00
opts.h
ordered-hash-map-tests.cc
ordered-hash-map.h
output.h aix: Redesign section encoding and selection 2021-05-02 15:16:49 -04:00
params.opt Change evrp-mode options. 2021-08-17 19:28:43 -04:00
pass_manager.h
passes.c
passes.def openacc: Middle-end worker-partitioning support 2021-08-09 14:47:42 +02:00
plugin.c
plugin.def
plugin.h
pointer-query.cc Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
pointer-query.h Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
poly-int-types.h
poly-int.h
postreload-gcse.c tree-optimization/101373 - avoid PRE across externally throwing call 2021-07-12 16:47:45 +02:00
postreload.c PR rtl-optimization/100263: Ensure register can change mode 2021-05-05 17:00:43 +02:00
predict.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
predict.def
predict.h
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl-function.c
print-rtl.c Remove CC0 2021-05-04 13:53:50 +00:00
print-rtl.h
print-tree.c
print-tree.h
profile-count.c
profile-count.h Change the type of return value of profile_count::value to uint64_t 2021-07-15 17:27:17 +02:00
profile.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
profile.h
range-op.cc Special case -TYPE_MIN_VALUE for flag_wrapv in operator_abs::op1_range. 2021-08-17 11:39:15 +02:00
range-op.h Add wi_fold_in_parts. 2021-07-16 20:27:10 -04:00
range.cc
range.h
read-md.c
read-md.h
read-rtl-function.c Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
read-rtl-function.h
read-rtl.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
real.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
real.h
realmpfr.c
realmpfr.h
recog.c Change the type of memory classification functions to bool 2021-07-12 16:35:14 +02:00
recog.h Change the type of memory classification functions to bool 2021-07-12 16:35:14 +02:00
ree.c REE: PR rtl-optimization/100264: Handle more PARALLEL SET expressions 2021-06-02 14:01:35 -07:00
reg-notes.def Remove CC0 2021-05-04 13:53:50 +00:00
reg-stack.c CALL_INSN may not be a real function call. 2021-06-07 10:25:03 +08:00
regcprop.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
regcprop.h
reginfo.c Remove CC0 2021-05-04 13:53:50 +00:00
regrename.c Remove CC0 2021-05-04 13:53:50 +00:00
regrename.h
regs.h
regset.h
regstat.c
reload.c Change the type of memory classification functions to bool 2021-07-12 16:35:14 +02:00
reload.h
reload1.c Remove CC0 2021-05-04 13:53:50 +00:00
reorg.c reorg.c (fill_slots_from_thread): Reinstate code typoed out in "Remove CC0". 2021-05-15 20:34:01 +02:00
resource.c Remove CC0 2021-05-04 13:53:50 +00:00
resource.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-ssa.h
rtl-tests.c
rtl.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
rtl.def Remove CC0 2021-05-04 13:53:50 +00:00
rtl.h aarch64: Replace some uses of GET_CODE with RTL predicate macros 2021-08-17 10:49:35 +01:00
rtlanal.c aarch64: Don't include vec_select high-half in SIMD multiply cost 2021-08-04 16:58:26 +01:00
rtlanal.h aarch64: Don't include vec_select high-half in SIMD multiply cost 2021-08-04 16:58:26 +01:00
rtlhash.c
rtlhash.h
rtlhooks-def.h
rtlhooks.c
rtx-vector-builder.c
rtx-vector-builder.h
run-rtl-passes.c
run-rtl-passes.h
sancov.c Add no_sanitize_coverage attribute. 2021-05-25 14:56:28 +02:00
sanitizer.def
sanopt.c ubsan: Fix ICEs with DECL_REGISTER tests [PR101624] 2021-07-28 18:43:15 +02:00
sbitmap.c
sbitmap.h Remove __cplusplus >= 201103 2021-05-10 09:16:17 +02:00
sched-deps.c Remove CC0 2021-05-04 13:53:50 +00:00
sched-ebb.c
sched-int.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
sched-rgn.c Remove CC0 2021-05-04 13:53:50 +00:00
sel-sched-dump.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
sel-sched-dump.h
sel-sched-ir.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
sel-sched-ir.h vec: use auto_vec in a few more places 2021-07-14 15:01:27 -04:00
sel-sched.c
sel-sched.h
selftest-diagnostic.c
selftest-diagnostic.h
selftest-rtl.c
selftest-rtl.h
selftest-run-tests.c Turn 'bool force_collect' parameter to 'ggc_collect' into an 'enum ggc_collect mode' 2021-08-18 13:25:29 +02:00
selftest.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
selftest.h Turn global 'ggc_force_collect' variable into 'force_collect' parameter to 'ggc_collect' 2021-08-17 21:00:10 +02:00
sese.c
sese.h
shortest-paths.h
shrink-wrap.c CALL_INSN may not be a real function call. 2021-06-07 10:25:03 +08:00
shrink-wrap.h
signop.h
simplify-rtx.c simplify-rtx: Push sign/zero-extension inside vec_duplicate 2021-07-27 10:42:33 +01:00
sort.cc Expose stable sort algorithm to gcc_sort_r and add vec::stablesort 2021-06-11 09:29:35 +02:00
sparseset.c
sparseset.h
spellcheck-tree.c
spellcheck-tree.h
spellcheck.c
spellcheck.h
splay-tree-utils.cc
splay-tree-utils.h
splay-tree-utils.tcc
sreal.c
sreal.h
ssa-iterators.h
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c
stmt.h
stor-layout.c stor-layout: Avoid DECL_BIT_FIELD_REPRESENTATIVE with NULL TREE_TYPE [PR101172] 2021-06-24 12:22:14 +02:00
stor-layout.h
store-motion.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
streamer-hooks.c
streamer-hooks.h
stringpool.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
stringpool.h
substring-locations.c
substring-locations.h
symbol-summary.h
symtab-clones.cc
symtab-clones.h ipa-sra: Restructure how cloning and call redirection communicate (PR 93385) 2021-06-28 18:24:34 +02:00
symtab-thunks.cc
symtab-thunks.h
symtab.c ipa: do not make localaliases for target_clones [PR101261] 2021-08-13 15:44:11 +02:00
sync-builtins.def
system.h Expose stable sort algorithm to gcc_sort_r and add vec::stablesort 2021-06-11 09:29:35 +02:00
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def
target.def gcov: Add TARGET_GCOV_TYPE_SIZE target hook 2021-08-16 15:34:25 +02:00
target.h
targhooks.c gcov: Add TARGET_GCOV_TYPE_SIZE target hook 2021-08-16 15:34:25 +02:00
targhooks.h gcov: Add TARGET_GCOV_TYPE_SIZE target hook 2021-08-16 15:34:25 +02:00
timevar.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
timevar.def refactor SSA rewriting timevars 2021-05-06 14:52:02 +02:00
timevar.h
toplev.c debug: Allow means for targets to opt out of CTF/BTF support 2021-07-19 10:34:39 -07:00
toplev.h Remove legacy external declarations in toplev.h [PR101447] 2021-07-26 10:40:18 -04:00
tracer.c
tracer.h
trans-mem.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
trans-mem.h
tree-affine.c Replace uses of determine_value_range with range_of_expr. 2021-06-03 17:47:54 +02:00
tree-affine.h
tree-call-cdce.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-cfg.c don't access cfun in dump_function_to_file 2021-08-17 08:00:40 -03:00
tree-cfg.h
tree-cfgcleanup.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
tree-cfgcleanup.h
tree-chrec.c
tree-chrec.h
tree-complex.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
tree-core.h Introduce EAF_NOREAD and cleanup EAF_UNUSED + ipa-modref 2021-08-13 10:04:52 +02:00
tree-data-ref.c Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
tree-data-ref.h Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
tree-dfa.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
tree-dfa.h
tree-diagnostic-path.cc
tree-diagnostic.c use diagnostic location in diagnostic_report_current_function 2021-07-15 01:10:34 -04:00
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c Get rid of some gimple_expr_type uses 2021-07-16 12:52:17 +02:00
tree-eh.h
tree-emutls.c ipa/100373 - fix emutls lowering compare-debug issue 2021-05-06 10:08:16 +02:00
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-if-conv.h
tree-inline.c retain debug stmt order when moving to successors 2021-08-17 08:00:40 -03:00
tree-inline.h Reuse non-gimple_reg variable for inlining 2021-05-04 12:54:13 +02:00
tree-into-ssa.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
tree-into-ssa.h
tree-iterator.c
tree-iterator.h tree-iterator: C++11 range-for and tree_stmt_iterator 2021-05-28 09:33:11 -04:00
tree-loop-distribution.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-nested.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
tree-nested.h
tree-nrv.c
tree-object-size.c passes: Fix up subobject __bos [PR101419] 2021-07-13 11:04:22 +02:00
tree-object-size.h
tree-outof-ssa.c Get rid of some gimple_expr_type uses 2021-07-16 12:52:17 +02:00
tree-outof-ssa.h
tree-parloops.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-parloops.h
tree-pass.h openacc: Middle-end worker-partitioning support 2021-08-09 14:47:42 +02:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
tree-pretty-print.c openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
tree-pretty-print.h Remove support for %G and %K. 2021-07-06 14:14:25 -06:00
tree-profile.c gcov: Add TARGET_GCOV_TYPE_SIZE target hook 2021-08-16 15:34:25 +02:00
tree-scalar-evolution.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-scalar-evolution.h
tree-sra.c Fix oversight in handling of reverse SSO in SRA pass 2021-08-05 10:24:50 +02:00
tree-sra.h
tree-ssa-address.c
tree-ssa-address.h
tree-ssa-alias-compare.h
tree-ssa-alias.c Introduce EAF_NOREAD and cleanup EAF_UNUSED + ipa-modref 2021-08-13 10:04:52 +02:00
tree-ssa-alias.h
tree-ssa-ccp.c Improved handling of MINUS_EXPR in bit CCP. 2021-08-17 14:59:14 +01:00
tree-ssa-ccp.h
tree-ssa-coalesce.c
tree-ssa-coalesce.h
tree-ssa-copy.c
tree-ssa-dce.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-dce.h
tree-ssa-dom.c Abstract out (forward) jump threader state handling. 2021-07-27 17:58:14 +02:00
tree-ssa-dom.h
tree-ssa-dse.c tree-optimization/101278 - handle self-use in DSE analysis 2021-07-01 12:31:21 +02:00
tree-ssa-dse.h
tree-ssa-forwprop.c target/101788 - avoid decomposing hard-register "loads" 2021-08-11 16:24:08 +02:00
tree-ssa-ifcombine.c Add no_sanitize_coverage attribute. 2021-05-25 14:56:28 +02:00
tree-ssa-live.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-live.h
tree-ssa-loop-ch.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-im.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-ivcanon.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-ivopts.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-split.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop-unswitch.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-loop.h
tree-ssa-math-opts.c
tree-ssa-math-opts.h
tree-ssa-operands.c Adjust volatile handling of the operand scanner 2021-08-11 16:24:08 +02:00
tree-ssa-operands.h
tree-ssa-phiopt.c Use CFN_BUILT_IN_CLRSB instead of BUILT_IN_CLRSB in switch. 2021-08-06 12:30:53 +01:00
tree-ssa-phiprop.c return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
tree-ssa-pre.c Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
tree-ssa-propagate.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-propagate.h
tree-ssa-reassoc.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-reassoc.h
tree-ssa-sccvn.c tree-optimization/101925 - fix VN with reverse storage order 2021-08-17 09:24:21 +02:00
tree-ssa-sccvn.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-scopedtables.c
tree-ssa-scopedtables.h
tree-ssa-sink.c tree-optimization/101151 - fix irreducible region check for sinking 2021-06-22 12:09:59 +02:00
tree-ssa-strlen.c Add new gimple-ssa-warn-access pass. 2021-07-28 16:02:17 -06:00
tree-ssa-strlen.h
tree-ssa-structalias.c Introduce EAF_NOREAD and cleanup EAF_UNUSED + ipa-modref 2021-08-13 10:04:52 +02:00
tree-ssa-tail-merge.c
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadbackward.c Remove legacy back threader. 2021-08-12 20:27:56 +02:00
tree-ssa-threadedge.c Backwards jump threader rewrite with ranger. 2021-07-29 08:24:50 +02:00
tree-ssa-threadedge.h Backwards jump threader rewrite with ranger. 2021-07-29 08:24:50 +02:00
tree-ssa-threadupdate.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-ssa-threadupdate.h Backwards jump threader rewrite with ranger. 2021-07-29 08:24:50 +02:00
tree-ssa-uncprop.c
tree-ssa-uninit.c Add EAF_NOREAD check to tree-ssa-uninit 2021-08-18 13:26:52 +02:00
tree-ssa.c Avoid marking TARGET_MEM_REF bases addressable 2021-05-19 14:53:50 +02:00
tree-ssa.h
tree-ssanames.c Move global range code to value-query.cc. 2021-05-27 10:37:49 +02:00
tree-ssanames.h Move global range code to value-query.cc. 2021-05-27 10:37:49 +02:00
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c LTO: stream properly FUNCTION_DECL_DECL_TYPE. 2021-05-31 11:25:37 +02:00
tree-streamer-out.c LTO: stream properly FUNCTION_DECL_DECL_TYPE. 2021-05-31 11:25:37 +02:00
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c Speed up jump table switch detection. 2021-08-16 13:37:49 +02:00
tree-switch-conversion.h Speed up jump table switch detection. 2021-08-16 13:37:49 +02:00
tree-tailcall.c tree-optimization/101769 - tail recursion creates possibly infinite loop 2021-08-04 10:35:27 +02:00
tree-vect-data-refs.c Refactor BB splitting of DRs for SLP group analysis 2021-08-20 12:37:19 +02:00
tree-vect-generic.c Fold more constants during veclower pass. 2021-08-20 00:28:47 +01:00
tree-vect-loop-manip.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-vect-loop.c tree-optimization/101801 - rework generic vector vectorization more 2021-08-10 10:12:39 +02:00
tree-vect-patterns.c Fall back to masked_gather_load/masked_scatter_store 2021-08-17 18:54:24 +02:00
tree-vect-slp-patterns.c Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
tree-vect-slp.c Refactor BB splitting of DRs for SLP group analysis 2021-08-20 12:37:19 +02:00
tree-vect-stmts.c Fall back to masked_gather_load/masked_scatter_store 2021-08-17 18:54:24 +02:00
tree-vector-builder.c
tree-vector-builder.h
tree-vectorizer.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-vectorizer.h tree-optimization/101801 - rework generic vector vectorization more 2021-08-10 10:12:39 +02:00
tree-vrp.c Use range-based for loops for traversing loops 2021-07-29 22:26:25 -05:00
tree-vrp.h Replace uses of determine_value_range with range_of_expr. 2021-06-03 17:47:54 +02:00
tree.c Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
tree.def openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
tree.h Move more warning code to gimple-ssa-warn-access etc. 2021-08-17 14:49:05 -06:00
treestruct.def
tristate.cc
tristate.h
tsan.c
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c
typed-splay-tree.h
ubsan.c ubsan: Fix ICEs with DECL_REGISTER tests [PR101624] 2021-07-28 18:43:15 +02:00
ubsan.h
unique-ptr-tests.cc
valtrack.c Remove CC0 2021-05-04 13:53:50 +00:00
valtrack.h
value-prof.c
value-prof.h
value-query.cc Allow PHIs to pick up global values. 2021-06-29 14:57:01 -04:00
value-query.h Initial value-relation code. 2021-06-22 08:11:44 -04:00
value-range-equiv.cc
value-range-equiv.h
value-range.cc Fix selftest for targets where short and int are the same size. 2021-05-25 18:34:22 +02:00
value-range.h Fix spacing and typos in comments. 2021-06-17 10:12:38 -04:00
value-relation.cc Allow non-symmetrical equivalences. 2021-07-22 08:51:59 -04:00
value-relation.h Initial value-relation code. 2021-06-22 08:11:44 -04:00
var-tracking.c Remove CC0 2021-05-04 13:53:50 +00:00
varasm.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
varasm.h
varpool.c
vec-perm-indices.c forwprop: Enhance vec perm fed by CTOR and CTOR/CST [PR99398] 2021-05-28 01:11:45 -05:00
vec-perm-indices.h forwprop: Enhance vec perm fed by CTOR and CTOR/CST [PR99398] 2021-05-28 01:11:45 -05:00
vec.c Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
vec.h Adjust by-value function vec arguments to by-reference. 2021-08-05 20:03:38 -06:00
vector-builder.h
vmsdbg.h
vmsdbgout.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
vr-values.c Only call vrp_visit_cond_stmt if range_of_stmt doesn't resolve to a const. 2021-07-22 08:51:59 -04:00
vr-values.h Add stmt context in simplify_using_ranges. 2021-06-29 14:57:01 -04:00
vtable-verify.c
vtable-verify.h
warning-control.cc Add support for per-location warning groups. 2021-06-24 19:23:42 -06:00
web.c
wide-int-bitmask.h
wide-int-print.cc
wide-int-print.h
wide-int.cc
wide-int.h
xcoff.h
xcoffout.c
xcoffout.h

README.Portability

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