gcc/gcc
Jason Merrill 1df539fd19 c++: remember pointer-to-member location
Jakub recently mentioned that a PTRMEM_CST has no location; let's give it a
location wrapper.

gcc/cp/ChangeLog:

	* typeck.c (build_x_unary_op): Set address location.
	(convert_member_func_to_ptr): Handle location wrapper.
	* pt.c (convert_nontype_argument): Likewise.

gcc/testsuite/ChangeLog:

	* g++.dg/template/crash106.C: Adjust.
	* g++.dg/diagnostic/ptrtomem3.C: New test.
2021-11-22 17:43:10 -05:00
..
ada Daily bump. 2021-11-16 00:16:31 +00:00
analyzer Daily bump. 2021-11-20 00:16:35 +00:00
c Daily bump. 2021-11-20 00:16:35 +00:00
c-family Daily bump. 2021-11-20 00:16:35 +00:00
common RISC-V: Fix wrong zifencei handling in riscv_subset_list::to_string 2021-11-11 08:46:53 +08:00
config Don't allow mask/sse/mmx mov in TLS code sequences. 2021-11-22 11:24:11 +08:00
cp c++: remember pointer-to-member location 2021-11-22 17:43:10 -05:00
d Daily bump. 2021-11-19 00:16:34 +00:00
doc docs: remove duplicate param documentation 2021-11-22 17:37:12 +01:00
fortran Daily bump. 2021-11-22 00:16:29 +00:00
ginclude
go compiler: traverse func subexprs when creating func descriptors 2021-11-11 12:21:56 -08:00
jit Daily bump. 2021-11-21 00:16:32 +00:00
lto Daily bump. 2021-11-19 00:16:34 +00:00
objc Daily bump. 2021-10-23 00:16:26 +00:00
objcp Daily bump. 2021-10-23 00:16:26 +00:00
po Daily bump. 2021-08-31 00:16:50 +00:00
rtl-ssa
testsuite c++: remember pointer-to-member location 2021-11-22 17:43:10 -05:00
ABOUT-GCC-NLS
BASE-VER
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog Daily bump. 2021-11-22 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-11-22 00:16:29 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in gcc/Makefile.in: fix bug in gengtype link rule 2021-10-29 16:51:25 -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
alias.h
align.h
alloc-pool.c
alloc-pool.h
array-traits.h
asan.c
asan.h c++: fix -fsanitize-coverage=trace-pc ICE [PR101331] 2021-09-13 15:34:23 +02:00
attr-fnspec.h Remember fnspec based EAF flags in modref summary. 2021-11-13 15:20:00 +01:00
attribs.c attribs: Implement -Wno-attributes=vendor::attr [PR101940] 2021-11-10 09:17:13 -05:00
attribs.h attribs: Implement -Wno-attributes=vendor::attr [PR101940] 2021-11-10 09:17:13 -05: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 Make sbitmap bitmap_set_bit and bitmap_clear_bit return changed state 2021-11-03 11:14:22 +01:00
bitmap.h Make sbitmap bitmap_set_bit and bitmap_clear_bit return changed state 2021-11-03 11:14:22 +01:00
btfout.c debug/102507: ICE in btf_finalize when compiling with -gbtf 2021-09-29 13:27:19 -07:00
builtin-attrs.def
builtin-types.def openmp: Honor OpenMP 5.1 num_teams lower bound 2021-11-12 12:41:22 +01:00
builtins.c Improve handling of some builtins. 2021-11-08 18:40:17 +01: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 ldist: Recognize strlen and rawmemchr like loops 2021-10-11 09:59:13 +02:00
caller-save.c
calls.c calls.c: Remove some dead code and target hooks 2021-10-20 21:02:52 +01: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 Remove find_pdom and find_dom 2021-11-11 09:20:15 +01:00
cfganal.h Apply TLC to control dependence compute 2021-11-11 09:19:49 +01:00
cfgbuild.c
cfgbuild.h
cfgcleanup.c Enable jump threading at -O1. 2021-09-28 14:33:53 +02:00
cfgcleanup.h
cfgexpand.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
cfgexpand.h
cfghooks.c Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
cfghooks.h Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
cfgloop.c Fix spurious valgrind errors in irred loop verification 2021-11-08 16:19:35 +01:00
cfgloop.h cfgloop: Make loops_list support an optional loop_p root 2021-08-05 03:44:20 -05:00
cfgloopanal.c
cfgloopmanip.c Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
cfgloopmanip.h Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
cfgrtl.c Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
cfgrtl.h
cgraph.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
cgraph.h Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
cgraphbuild.c
cgraphclones.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
cgraphunit.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
cif-code.def
collect-utils.c Fix PR driver/79181 (and others), not deleting some /tmp/cc* files for LTO. 2021-08-31 06:28:27 +00:00
collect-utils.h Fix PR driver/79181 (and others), not deleting some /tmp/cc* files for LTO. 2021-08-31 06:28:27 +00:00
collect2-aix.c
collect2-aix.h
collect2.c collect2: Fix missing cleanups. 2021-10-13 17:06:36 +01:00
collect2.h
color-macros.h
combine-stack-adj.c
combine.c Try placing RTL folded constants in the constant pool. 2021-10-18 12:18:00 +01:00
common.md
common.opt Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
compare-elim.c
conditions.h
config.build
config.gcc rs6000: Remove LINK_OS_EXTRA_SPEC{32,64} from --with-advance-toolchain 2021-11-10 14:32:09 +00:00
config.host Darwin, aarch64 : Initial support for the self-host driver. 2021-11-05 20:52:42 +00:00
config.in configure, Darwin: Check ld64 support for -platform-version. 2021-11-15 19:35:10 +00:00
configure configure, Darwin: Check ld64 support for -platform-version. 2021-11-15 19:35:10 +00:00
configure.ac configure, Darwin: Check ld64 support for -platform-version. 2021-11-15 19:35:10 +00:00
context.c
context.h
convert.c
convert.h
coretypes.h Support -fexcess-precision=16 which will enable FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when backend supports _Float16. 2021-09-08 12:44:49 +08:00
coroutine-builtins.def
coroutine-passes.cc
coverage.c gcov-profile: Fix -fcompare-debug with -fprofile-generate [PR100520] 2021-11-08 12:52:16 +01:00
coverage.h
cppbuiltin.c c-family: Add more predefined macros for math flags 2021-09-20 15:13:11 +02:00
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c
cse.c middle-end: Teach CSE to be able to do vector extracts. 2021-11-01 13:48:58 +00:00
cselib.c
cselib.h
cstamp-h.in
ctfc.c ctfc: Free CTF container elements in ctfc_delete_container () 2021-10-07 12:39:19 -07:00
ctfc.h ctfc: remove redundant comma in enumerator list 2021-10-13 10:05:18 -07:00
ctfout.c
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
dbgcnt.c Remove unused but set variables. 2021-10-18 10:16:46 +02:00
dbgcnt.def Fix bug in ipa-pure-const and add debug counters 2021-11-14 00:48:32 +01:00
dbgcnt.h Improve jump threading dump output. 2021-09-28 15:55:29 +02:00
dbxout.c
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c
debug.h
defaults.h Always default to DWARF2_DEBUG if not specified, warn about deprecated STABS 2021-10-15 09:34:07 +02:00
df-core.c
df-problems.c
df-scan.c
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic-event-id.h
diagnostic-format-json.cc diagnostics: escape non-ASCII source bytes for certain diagnostics 2021-11-01 09:35:46 -04:00
diagnostic-metadata.h
diagnostic-path.h
diagnostic-show-locus.c diagnostic: fix unused variable 'def_tabstop' [PR103129] 2021-11-11 12:12:53 -05:00
diagnostic-spec.c Use 'location_hash' for 'gcc/diagnostic-spec.h:nowarn_map' 2021-11-15 17:57:54 +01:00
diagnostic-spec.h Use 'location_hash' for 'gcc/diagnostic-spec.h:nowarn_map' 2021-11-15 17:57:54 +01:00
diagnostic-url.h
diagnostic.c diagnostics: escape non-ASCII source bytes for certain diagnostics 2021-11-01 09:35:46 -04:00
diagnostic.def
diagnostic.h diagnostics: escape non-ASCII source bytes for certain diagnostics 2021-11-01 09:35:46 -04: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
dumpfile.c Remove TDF_THREADING flag in favor of param. 2021-11-09 14:29:22 +01:00
dumpfile.h Remove TDF_THREADING flag in favor of param. 2021-11-09 14:29:22 +01:00
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c
dwarf2ctf.c dwarf2ctf: fix typo in comment 2021-10-13 09:58:46 -07:00
dwarf2ctf.h dwarf2out: Emit BTF in dwarf2out_finish for BPF CO-RE usecase 2021-09-07 11:18:54 -07:00
dwarf2out.c dwarf2out: Fix up field_byte_offset [PR101378] 2021-11-11 10:16:45 +01:00
dwarf2out.h dwarf: externalize lookup_type_die 2021-09-07 13:48:57 -07:00
early-remat.c
edit-context.c
edit-context.h
emit-rtl.c rtl: directly handle MEM in gen_highpart [PR102125] 2021-09-13 11:26:47 +01:00
emit-rtl.h
errors.c
errors.h
escaped_string.h
et-forest.c
et-forest.h
except.c
except.h
exec-tool.in
explow.c Fix ICE with stack checking emulation at -O2 2021-10-01 10:56:45 +02:00
explow.h
expmed.c gcc/expmed.c: Ensure vector modes are tieable before extraction 2021-11-04 14:51:09 +00:00
expmed.h genmodes: Define NUM_MODE_* macros 2021-11-08 10:36:25 +00:00
expr.c gcc/expr.c: Remove historic workaround for broken SIMD subreg 2021-11-04 14:50:55 +00:00
expr.h middle-end/102285 - refine .DEFERRED_INIT expansion 2021-10-04 16:53:25 +02:00
fibonacci_heap.c
fibonacci_heap.h
file-find.c
file-find.h
file-prefix-map.c
file-prefix-map.h
final.c
fixed-value.c
fixed-value.h
flag-types.h Remove TDF_THREADING flag in favor of param. 2021-11-09 14:29:22 +01:00
flags.h debug: Add BTF_WITH_CORE_DEBUG debug format 2021-09-07 11:16:53 -07:00
fold-const-call.c
fold-const-call.h
fold-const.c c: Fold implicit integer-to-floating conversions in static initializers with -frounding-math [PR103031] 2021-11-03 14:59:22 +00:00
fold-const.h c: Fold implicit integer-to-floating conversions in static initializers with -frounding-math [PR103031] 2021-11-03 14:59:22 +00:00
fp-test.c
function-abi.cc
function-abi.h
function-tests.c Apply TLC to control dependence compute 2021-11-11 09:19:49 +01:00
function.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
function.h Keep x_range_query NULL for global ranges. 2021-11-09 13:27:42 -05:00
fwprop.c
gcc-ar.c
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h Disable gcc_rich_location copying and assignment. 2021-08-31 11:15:21 -06:00
gcc-symtab.h
gcc.c Do not abort compilation when dump file is /dev/* 2021-11-19 11:27:21 -03:00
gcc.h
gcov-counter.def
gcov-dump.c gcov: make profile merging smarter 2021-10-13 15:26:58 +02:00
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: Remove dead variable. 2021-11-03 14:30:01 +01:00
gcse-common.c
gcse-common.h
gcse.c
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c
genautomata.c
gencfn-macros.c
gencheck.c
genchecksum.c
gencodes.c
genconditions.c Fix clang -Wcast-qual warning. 2021-11-09 09:46:09 +01:00
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 Enhance -Waddress to detect more suspicious expressions [PR102103]. 2021-10-01 11:57:05 -06:00
gengtype.h
genhooks.c
genmatch.c
genmddeps.c
genmddump.c
genmodes.c genmodes: Define NUM_MODE_* macros 2021-11-08 10:36:25 +00:00
genmultilib
genopinit.c
genoutput.c
genpeep.c
genpreds.c
genrecog.c
gensupport.c
gensupport.h
gentarget-def.c
genversion.c
ggc-common.c PCH: Make the save and restore diagnostics more robust. 2021-11-16 19:42:35 +00: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 Avoid pathological function redeclarations when checking access sizes [PR102759]. 2021-11-17 15:09:23 -07:00
gimple-array-bounds.h Make full use of context-sensitive ranges in access warnings. 2021-10-26 16:53:23 -06:00
gimple-builder.c
gimple-builder.h
gimple-expr.c
gimple-expr.h
gimple-fold.c Avoid assuming maximum string length is constant [PR102960]. 2021-11-16 09:18:25 -07:00
gimple-fold.h openmp: Avoid calling clear_type_padding_in_mask in the common case where there can't be any padding 2021-10-12 09:37:25 +02:00
gimple-harden-conditionals.cc harden conds: detach without decls 2021-11-20 02:51:27 -03:00
gimple-if-to-switch.cc
gimple-isel.cc [gimple-isel] Remove redundant if condition. 2021-10-06 11:21:13 +05:30
gimple-iterator.c Add GSI_LAST_NEW_STMT iterator update 2021-10-13 15:12:43 +02:00
gimple-iterator.h Add GSI_LAST_NEW_STMT iterator update 2021-10-13 15:12:43 +02:00
gimple-laddress.c
gimple-loop-interchange.cc
gimple-loop-jam.c tree-optimization/103219 - avoid ICE in unroll-and-jam 2021-11-15 11:10:16 +01:00
gimple-loop-versioning.cc
gimple-low.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
gimple-low.h
gimple-match-head.c [sve] PR93183 - Add support for conditional neg. 2021-10-18 15:44:06 +05:30
gimple-match.h
gimple-predicate-analysis.cc Remove unused function. 2021-11-12 12:40:02 +01:00
gimple-predicate-analysis.h Factor predidacte analysis out of tree-ssa-uninit.c into its own module. 2021-09-17 15:39:13 -06:00
gimple-predict.h
gimple-pretty-print.c More consistently dump GIMPLE FE consumable stmts 2021-10-06 12:02:14 +02:00
gimple-pretty-print.h
gimple-range-cache.cc Do not pass NULL to memset in ssa_global_cache. 2021-11-14 14:13:55 +01:00
gimple-range-cache.h Abstract ranger cache update list. 2021-11-05 13:15:19 -04:00
gimple-range-edge.cc Introduce a param-switch-limit for EVRP. 2021-10-06 09:18:09 -04:00
gimple-range-edge.h Introduce a param-switch-limit for EVRP. 2021-10-06 09:18:09 -04:00
gimple-range-fold.cc ranger: Fix up fold_using_range::range_of_address [PR103255] 2021-11-17 13:45:53 +01:00
gimple-range-fold.h Ranger : Do not process abnormal ssa-names. 2021-10-15 12:00:41 -04:00
gimple-range-gori.cc Limit depth for all GORI expressions. 2021-11-19 11:38:06 -05:00
gimple-range-gori.h Create a ranger-local flag for non-executable edges. 2021-09-23 12:56:43 -04:00
gimple-range-path.cc Fix PHI ordering problems in the path solver. 2021-11-15 13:16:57 +01:00
gimple-range-path.h Fix PHI ordering problems in the path solver. 2021-11-15 13:16:57 +01:00
gimple-range-tests.cc
gimple-range-trace.cc Make dump_ranger routines externally visible. 2021-09-19 17:40:34 +02:00
gimple-range-trace.h Make dump_ranger routines externally visible. 2021-09-19 17:40:34 +02:00
gimple-range.cc Keep x_range_query NULL for global ranges. 2021-11-09 13:27:42 -05:00
gimple-range.h Provide some context to folding via ranger. 2021-11-03 10:01:21 -04:00
gimple-ssa-backprop.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
gimple-ssa-evrp-analyze.c
gimple-ssa-evrp-analyze.h Convert some evrp uses in DOM to the range_query API. 2021-09-27 11:43:19 +02:00
gimple-ssa-evrp.c Split --param=evrp-mode into evrp-mode and ranger-debug. 2021-10-21 09:28:23 -04:00
gimple-ssa-isolate-paths.c
gimple-ssa-nonnull-compare.c
gimple-ssa-split-paths.c
gimple-ssa-sprintf.c Improve/correct detection of overlapping aggregates [PR102238, PR102919]. 2021-10-26 16:53:54 -06:00
gimple-ssa-store-merging.c tree-optimization/103345: Improved load merging. 2021-11-22 18:15:36 +00:00
gimple-ssa-strength-reduction.c
gimple-ssa-warn-access.cc Avoid pathological function redeclarations when checking access sizes [PR102759]. 2021-11-17 15:09:23 -07:00
gimple-ssa-warn-access.h Make full use of context-sensitive ranges in access warnings. 2021-10-26 16:53:23 -06:00
gimple-ssa-warn-alloca.c Remove static marker for range in alloca pass. 2021-10-04 13:20:25 +02: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
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 Remember fnspec based EAF flags in modref summary. 2021-11-13 15:20:00 +01:00
gimple.def openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
gimple.h Static chain support in ipa-modref 2021-11-02 18:57:51 +01:00
gimplify-me.c
gimplify-me.h
gimplify.c Fix ICE when mixing VLAs and statement expressions [PR91038] 2021-11-17 14:29:50 +01:00
gimplify.h
glimits.h
godump.c
graph.c graph output: use better colors for edges 2021-09-01 13:33:04 +02:00
graph.h
graphds.c
graphds.h
graphite-dependences.c
graphite-isl-ast-to-gimple.c
graphite-optimize-isl.c
graphite-poly.c
graphite-scop-detection.c
graphite-sese-to-poly.c
graphite.c
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 Fix 'hash_table::expand' to destruct stale Value objects 2021-09-17 17:40:02 +02:00
hash-map-traits.h
hash-map.h
hash-set-tests.c
hash-set.h
hash-table.c
hash-table.h Fix 'hash_table::expand' to destruct stale Value objects 2021-09-17 17:40:02 +02:00
hash-traits.h
highlev-plugin-common.h
hooks.c
hooks.h
host-default.c
hosthooks-def.h
hosthooks.h
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c
ifcvt.h
inchash.c
inchash.h
incpath.c
incpath.h
init-regs.c
input.c diagnostics: escape non-ASCII source bytes for certain diagnostics 2021-11-01 09:35:46 -04:00
input.h Generalize 'gcc/input.h:struct location_hash' 2021-11-09 14:40:12 +01:00
insn-addr.h
insn-notes.def
int-vector-builder.h
internal-fn.c Add IFN_COND_FMIN/FMAX functions 2021-11-17 12:28:44 +00:00
internal-fn.def Add IFN_COND_FMIN/FMAX functions 2021-11-17 12:28:44 +00:00
internal-fn.h
intl.c
intl.h
ipa-comdats.c
ipa-cp.c ipa-cp: Use profile counters (or not) based on local availability 2021-10-27 15:12:05 +02:00
ipa-devirt.c
ipa-fnsummary.c Whitelity type attributes for function signature change 2021-11-13 15:46:57 +01:00
ipa-fnsummary.h Rename predicate class to ipa_predicate 2021-11-03 14:00:46 +01:00
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-icf.h
ipa-inline-analysis.c
ipa-inline-transform.c
ipa-inline.c inline: do not einline when no_profile_instrument_function is different 2021-09-07 11:47:57 +02:00
ipa-inline.h
ipa-modref-tree.c Add very basic IPA part of modref-kill analysis 2021-11-17 20:40:44 +01:00
ipa-modref-tree.h Fix IPA modref ubsan. 2021-11-19 12:33:19 +01:00
ipa-modref.c Improve base tracking in ipa-modref 2021-11-21 16:15:41 +01:00
ipa-modref.h Use modref summaries for byte-wise dead store elimination. 2021-11-16 23:01:28 +01:00
ipa-param-manipulation.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
ipa-param-manipulation.h Whitelity type attributes for function signature change 2021-11-13 15:46:57 +01:00
ipa-polymorphic-call.c
ipa-predicate.c Rename predicate class to ipa_predicate 2021-11-03 14:00:46 +01:00
ipa-predicate.h Rename predicate class to ipa_predicate 2021-11-03 14:00:46 +01:00
ipa-profile.c
ipa-prop.c ipa: Do not require RECORD_TYPE for ancestor jump functions 2021-11-05 14:29:31 +01: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 Fix looping flag discovery in ipa-pure-const 2021-11-21 00:35:22 +01:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
ipa-sra.c Enable ipa-sra with fnspec attributes 2021-11-13 12:13:42 +01:00
ipa-utils.c
ipa-utils.h Enable pure-const discovery in modref. 2021-11-11 18:14:45 +01:00
ipa-visibility.c
ipa.c IPA: Provide a mechanism to register static DTORs via cxa_atexit. 2021-11-15 19:48:56 +00:00
ira-build.c Make profitability calculation of RA conflict presentations independent of host compiler type sizes. [PR102147] 2021-09-24 11:14:47 -04:00
ira-color.c
ira-conflicts.c
ira-costs.c
ira-emit.c
ira-int.h
ira-lives.c
ira.c
ira.h
is-a.h
iterator-utils.h
json.cc
json.h
jump.c
langhooks-def.h Add a simulate_record_decl lang hook 2021-11-02 10:51:23 +00:00
langhooks.c Add a simulate_record_decl lang hook 2021-11-02 10:51:23 +00:00
langhooks.h c++: improve print_node of PTRMEM_CST 2021-11-16 10:20:30 -05:00
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c
loop-init.c
loop-invariant.c
loop-iv.c
loop-unroll.c Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
loop-unroll.h
lower-subreg.c gcc/lower_subreg.c: Prevent decomposition if modes are not tieable 2021-11-04 14:55:44 +00:00
lower-subreg.h
lra-assigns.c
lra-coalesce.c
lra-constraints.c [PR102842] Consider all outputs in generation of matching reloads 2021-10-26 15:17:29 -04:00
lra-eliminations.c
lra-int.h
lra-lives.c
lra-remat.c
lra-spills.c
lra.c
lra.h
lto-cgraph.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
lto-compress.c Remove unused but set variables. 2021-10-18 10:16:46 +02:00
lto-compress.h
lto-opts.c Come up with OPTION_SET_P macro. 2021-10-08 13:27:49 +02:00
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
lto-streamer-out.c c++, abi: Set DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on C++ zero width bitfields [PR102024] 2021-09-03 09:46:32 +02:00
lto-streamer.c
lto-streamer.h
lto-wrapper.c lto-wrapper: fix memory corruption. 2021-11-10 13:43:24 +01:00
machmode.def
machmode.h
main.c
match.pd Fix tree-optimization/103220: Another missing folding of (type) X op CST where type is a nop convert 2021-11-20 08:06:18 +00: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
multiple_target.c Use non-numbered clones for target_clones. 2021-08-26 09:51:11 +02:00
mux-utils.h
obstack-utils.h
omp-builtins.def openmp: Honor OpenMP 5.1 num_teams lower bound 2021-11-12 12:41:22 +01:00
omp-expand.c openmp: Regimplify operands of GIMPLE_COND in a few more places [PR103208] 2021-11-16 10:19:22 +01:00
omp-expand.h
omp-general.c openmp, fortran: Add support for OpenMP declare variant directive in Fortran 2021-10-14 09:16:36 -07:00
omp-general.h openmp, fortran: Add support for OpenMP declare variant directive in Fortran 2021-10-14 09:16:36 -07:00
omp-low.c openmp: Relax handling of implicit map vs. existing device mappings 2021-11-12 20:29:48 +08:00
omp-low.h
omp-oacc-kernels-decompose.cc
omp-oacc-neuter-broadcast.cc Evaluate 'random ()' to '0' in 'pass_omp_oacc_neuter_broadcast' 2021-09-21 12:38:44 +02:00
omp-offload.c Come up with OPTION_SET_P macro. 2021-10-08 13:27:49 +02:00
omp-offload.h
omp-simd-clone.c Introduce build_debug_expr_decl 2021-11-09 17:54:28 +01:00
omp-simd-clone.h
opt-functions.awk Fix negative integer range for UInteger. 2021-11-01 20:29:19 +01:00
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
optabs-tree.h
optabs.c Avoid FROM being overwritten in expand_fix. 2021-09-06 18:57:46 +08:00
optabs.def Add IFN_COND_FMIN/FMAX functions 2021-11-17 12:28:44 +00:00
optabs.h
optc-gen.awk Fix negative integer range for UInteger. 2021-11-01 20:29:19 +01:00
optc-save-gen.awk
opth-gen.awk
optinfo-emit-json.cc
optinfo-emit-json.h
optinfo.cc
optinfo.h
opts-common.c
opts-diagnostic.h
opts-global.c
opts.c options: Make -Ofast switch off -fsemantic-interposition 2021-11-19 18:46:08 +01:00
opts.h Come up with OPTION_SET_P macro. 2021-10-08 13:27:49 +02:00
ordered-hash-map-tests.cc
ordered-hash-map.h
output.h Come up with section_flag enum. 2021-09-27 16:59:38 +02:00
params.opt Remove TDF_THREADING flag in favor of param. 2021-11-09 14:29:22 +01:00
pass_manager.h
passes.c
passes.def Enable pure-const discovery in modref. 2021-11-11 18:14:45 +01:00
plugin.c
plugin.def
plugin.h attribs: Implement -Wno-attributes=vendor::attr [PR101940] 2021-11-10 09:17:13 -05:00
pointer-query.cc Avoid pathological function redeclarations when checking access sizes [PR102759]. 2021-11-17 15:09:23 -07:00
pointer-query.h Avoid pathological function redeclarations when checking access sizes [PR102759]. 2021-11-17 15:09:23 -07:00
poly-int-types.h
poly-int.h Enhance -Waddress to detect more suspicious expressions [PR102103]. 2021-10-01 11:57:05 -06:00
postreload-gcse.c
postreload.c
predict.c loop: Fix profile updates after unrolling [PR102385] 2021-10-08 13:17:47 +01:00
predict.def
predict.h loop: Fix profile updates after unrolling [PR102385] 2021-10-08 13:17:47 +01:00
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl-function.c
print-rtl.c Define m_rtx_reuse_manager only if not GENERATOR_FILE. 2021-11-09 14:45:51 +01:00
print-rtl.h Define m_rtx_reuse_manager only if not GENERATOR_FILE. 2021-11-09 14:45:51 +01:00
print-tree.c c++: improve print_node of PTRMEM_CST 2021-11-16 10:20:30 -05:00
print-tree.h
profile-count.c
profile-count.h
profile.c Use 'location_hash' for 'seen_locations' in 'gcc/profile.c:branch_prob' 2021-11-15 17:56:49 +01:00
profile.h
range-op.cc [PR102563] Do not clobber range in operator_lshift::op1_range. 2021-10-02 21:50:45 +02:00
range-op.h
range.cc
range.h
read-md.c md/define_c_enum: support value assignation 2021-09-01 18:12:17 +08:00
read-md.h
read-rtl-function.c Fix RTL frontend handling of const_vectors 2021-11-04 08:28:44 +00:00
read-rtl-function.h
read-rtl.c Fix RTL frontend handling of const_vectors 2021-11-04 08:28:44 +00:00
real.c real: fix encoding of negative IEEE double/quad values [PR98216] 2021-09-24 12:36:26 -04:00
real.h genmodes: Define NUM_MODE_* macros 2021-11-08 10:36:25 +00:00
realmpfr.c
realmpfr.h
recog.c
recog.h
ree.c
reg-notes.def
reg-stack.c
regcprop.c
regcprop.h
reginfo.c
regrename.c
regrename.h
regs.h
regset.h
regstat.c
reload.c
reload.h
reload1.c
reorg.c
resource.c
resource.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-ssa.h
rtl-tests.c
rtl.c
rtl.def Introduce smul_highpart and umul_highpart RTX for high-part multiplications 2021-10-07 15:42:09 +01:00
rtl.h middle-end: Teach CSE to be able to do vector extracts. 2021-11-01 13:48:58 +00: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
sanitizer.def
sanopt.c
sbitmap.c
sbitmap.h Make sbitmap bitmap_set_bit and bitmap_clear_bit return changed state 2021-11-03 11:14:22 +01:00
sched-deps.c
sched-ebb.c
sched-int.h
sched-rgn.c
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c
sel-sched-ir.h
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 diagnostics: escape non-ASCII source bytes for certain diagnostics 2021-11-01 09:35:46 -04:00
selftest.h diagnostics: escape non-ASCII source bytes for certain diagnostics 2021-11-01 09:35:46 -04:00
sese.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
sese.h
shortest-paths.h
shrink-wrap.c
shrink-wrap.h
signop.h
simplify-rtx.c rtl-optimization/103075 - avoid ICEing on unfolded int-to-float converts 2021-11-04 13:33:19 +01:00
sort.cc
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 Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c
stmt.h
stor-layout.c
stor-layout.h
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
substring-locations.c
substring-locations.h
symbol-summary.h call_summary: add missing template keyword 2021-08-27 10:08:28 -04:00
symtab-clones.cc
symtab-clones.h
symtab-thunks.cc
symtab-thunks.h
symtab.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
sync-builtins.def
system.h gcov-profile: Fix -fcompare-debug with -fprofile-generate [PR100520] 2021-11-08 12:52:16 +01:00
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def
target.def IPA: Provide a mechanism to register static DTORs via cxa_atexit. 2021-11-15 19:48:56 +00:00
target.h
targhooks.c vect: Convert cost hooks to classes 2021-11-04 12:31:17 +00:00
targhooks.h vect: Convert cost hooks to classes 2021-11-04 12:31:17 +00:00
timevar.c
timevar.def Use a separate TV_* timer for the VRP threader. 2021-09-29 20:27:52 +02:00
timevar.h
toplev.c attribs: Implement -Wno-attributes=vendor::attr [PR101940] 2021-11-10 09:17:13 -05:00
toplev.h build: Fix --enable-gather-detailed-mem-stats 2021-10-07 14:09:38 +02:00
tracer.c
tracer.h
trans-mem.c
trans-mem.h
tree-affine.c
tree-affine.h
tree-call-cdce.c
tree-cfg.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-cfg.h
tree-cfgcleanup.c
tree-cfgcleanup.h
tree-chrec.c
tree-chrec.h
tree-complex.c
tree-core.h Make EAF flags more regular (and expressive) 2021-11-10 13:08:41 +01:00
tree-data-ref.c tree-optimization/102853 - avoid trapping types in split_constant_offset 2021-10-20 13:48:35 +02:00
tree-data-ref.h tree-optimization/65206 - dependence analysis on mixed pointer/array 2021-09-20 08:51:07 +02:00
tree-dfa.c
tree-dfa.h
tree-diagnostic-path.cc
tree-diagnostic.c
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c middle-end/103248 - fix RDIV_EXPR handling with fixed point 2021-11-19 09:35:57 +01:00
tree-eh.h
tree-emutls.c
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c Extend is_cond_scalar_reduction to handle bit_and/bit_xor/bit_ior. 2021-11-10 16:28:42 +08:00
tree-if-conv.h
tree-inline.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-inline.h
tree-into-ssa.c Replace more DEBUG_EXPR_DECL creations with build_debug_expr_decl 2021-11-16 10:45:46 +01:00
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01: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 tree-object-size: Make unknown a computation 2021-10-20 08:28:20 +05:30
tree-object-size.h tree-object-size: Drop unused pdecl and poff arguments 2021-10-07 20:32:19 +05:30
tree-outof-ssa.c
tree-outof-ssa.h
tree-parloops.c First refactor of vect_analyze_loop 2021-11-05 09:03:11 +01:00
tree-parloops.h
tree-pass.h Remove VRP threader. 2021-11-07 19:08:57 +01:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c loop: Fix profile updates after unrolling [PR102385] 2021-10-08 13:17:47 +01:00
tree-pretty-print.c openmp: Relax handling of implicit map vs. existing device mappings 2021-11-12 20:29:48 +08:00
tree-pretty-print.h
tree-profile.c gcov: Add TARGET_GCOV_TYPE_SIZE target hook 2021-08-16 15:34:25 +02:00
tree-scalar-evolution.c
tree-scalar-evolution.h
tree-sra.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-sra.h
tree-ssa-address.c
tree-ssa-address.h
tree-ssa-alias-compare.h
tree-ssa-alias.c Use modref even for nested functions in ref_maybe_used_by_call_p_1 2021-11-19 18:09:13 +01:00
tree-ssa-alias.h Implement DSE of dead functions calls storing memory. 2021-11-13 22:25:23 +01:00
tree-ssa-ccp.c Add a missing return when transforming atomic bit test and operations 2021-11-15 19:23:58 -08:00
tree-ssa-ccp.h
tree-ssa-coalesce.c
tree-ssa-coalesce.h
tree-ssa-copy.c
tree-ssa-dce.c tree-optimization/103351 - avoid compare-debug issue wrt CD-DCE change 2021-11-22 12:18:08 +01:00
tree-ssa-dce.h
tree-ssa-dom.c Convert some evrp uses in DOM to the range_query API. 2021-09-27 11:43:19 +02:00
tree-ssa-dom.h
tree-ssa-dse.c tree-optimization/103277 - do abnormal cleanup after call DSE 2021-11-18 10:02:17 +01:00
tree-ssa-dse.h tree-optimization/103277 - do abnormal cleanup after call DSE 2021-11-18 10:02:17 +01:00
tree-ssa-forwprop.c forwprop: Remove incorrect assertion [PR102897] 2021-10-26 04:10:00 -05:00
tree-ssa-ifcombine.c
tree-ssa-live.c
tree-ssa-live.h
tree-ssa-loop-ch.c Make ranger optional in path_range_query. 2021-11-11 22:13:17 +01:00
tree-ssa-loop-im.c tree-optimization/102436 - restore loop store motion 2021-11-19 09:35:21 +01:00
tree-ssa-loop-ivcanon.c Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
tree-ssa-loop-ivopts.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
tree-ssa-loop-manip.h Rename duplicate_loop_to_header_edge to duplicate_loop_body_to_header_edge 2021-11-01 00:14:01 -05:00
tree-ssa-loop-niter.c Set bound/cmp/control for until wrap loop. 2021-09-22 21:03:08 +08:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c loop: Fix profile updates after unrolling [PR102385] 2021-10-08 13:17:47 +01:00
tree-ssa-loop-split.c
tree-ssa-loop-unswitch.c
tree-ssa-loop.c [tree-vectorizer.c] Merge pass_vectorize::execute with vectorize_loops and replace occurences of cfun with function param. 2021-11-15 15:37:36 +05:30
tree-ssa-loop.h
tree-ssa-math-opts.c Tweak tree-ssa-math-opts.c to solve PR target/102117. 2021-11-21 11:40:08 +00:00
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 Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssa-phiprop.c
tree-ssa-pre.c VN/PRE TLC 2021-11-04 10:15:36 +01:00
tree-ssa-propagate.c
tree-ssa-propagate.h
tree-ssa-reassoc.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssa-reassoc.h
tree-ssa-sccvn.c tree-optimization/103204 - fix missed valueization in VN 2021-11-12 09:11:49 +01:00
tree-ssa-sccvn.h tree-optimization/102920 - fix PHI VN with undefined args 2021-10-25 10:28:00 +02:00
tree-ssa-scopedtables.c
tree-ssa-scopedtables.h
tree-ssa-sink.c
tree-ssa-strlen.c Avoid assuming maximum string length is constant [PR102960]. 2021-11-16 09:18:25 -07:00
tree-ssa-strlen.h
tree-ssa-structalias.c Track nondeterminism and interposable calls in ipa-modref 2021-11-15 00:10:06 +01:00
tree-ssa-tail-merge.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssa-ter.c middle-end/102129 - avoid TER of possibly trapping expressions 2021-08-31 11:38:01 +02:00
tree-ssa-ter.h
tree-ssa-threadbackward.c Make ranger optional in path_range_query. 2021-11-11 22:13:17 +01:00
tree-ssa-threadedge.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssa-threadedge.h Minor cleanups to solver. 2021-09-27 17:39:51 +02:00
tree-ssa-threadupdate.c Try to resolve paths in threader without looking further back. 2021-10-26 08:20:10 +02:00
tree-ssa-threadupdate.h Avoid invalid loop transformations in jump threading registry. 2021-09-24 08:25:42 +02:00
tree-ssa-uncprop.c
tree-ssa-uninit.c Make EAF flags more regular (and expressive) 2021-11-10 13:08:41 +01:00
tree-ssa.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssa.h
tree-ssanames.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-ssanames.h
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c c++, abi: Set DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on C++ zero width bitfields [PR102024] 2021-09-03 09:46:32 +02:00
tree-streamer-out.c c++, abi: Set DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on C++ zero width bitfields [PR102024] 2021-09-03 09:46:32 +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 Unify offset and byte_offset for vect_create_addr_base_for_vector_ref 2021-10-26 12:33:28 +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 Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-vect-loop.c Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
tree-vect-patterns.c tree-optimization/102788 - avoid spurious bool pattern fails 2021-10-18 12:57:43 +02:00
tree-vect-slp-patterns.c middle-end: Handle FMA_CONJ correctly after SLP layout update. 2021-11-19 15:12:38 +00:00
tree-vect-slp.c vect: Pass scalar_costs to finish_cost 2021-11-10 12:31:02 +00:00
tree-vect-stmts.c AArch64: do not keep negated mask and inverse mask live at the same time 2021-11-10 16:03:18 +00:00
tree-vector-builder.c
tree-vector-builder.h
tree-vectorizer.c [tree-vectorizer.c] Merge pass_vectorize::execute with vectorize_loops and replace occurences of cfun with function param. 2021-11-15 15:37:36 +05:30
tree-vectorizer.h AArch64: do not keep negated mask and inverse mask live at the same time 2021-11-10 16:03:18 +00:00
tree-vrp.c Remove VRP threader. 2021-11-07 19:08:57 +01:00
tree-vrp.h Move ranger only VRP folder to tree-vrp. 2021-10-21 09:28:22 -04:00
tree.c c++: Implement -Wuninitialized for mem-initializers (redux) [PR19808] 2021-11-18 22:31:11 -05:00
tree.def openmp: Implement OpenMP 5.1 scope construct 2021-08-17 09:30:09 +02:00
tree.h Revert "Remove MAY_HAVE_DEBUG_MARKER_STMTS and MAY_HAVE_DEBUG_BIND_STMTS." 2021-11-19 15:29:35 +01:00
treestruct.def
tristate.cc
tristate.h
tsan.c
tsan.h
tsystem.h Use __builtin_trap() for abort() if inhibit_libc 2021-08-30 10:37:17 +02:00
typeclass.h
typed-splay-tree.c
typed-splay-tree.h
ubsan.c
ubsan.h
unique-ptr-tests.cc
valtrack.c
valtrack.h
value-pointer-equiv.cc Remove unused gimple-ssa-evr-analyze.h header file. 2021-11-10 08:04:08 +01:00
value-pointer-equiv.h Convert arrays in ssa pointer_equiv_analyzer to auto_vec's. 2021-11-04 11:48:04 +01:00
value-prof.c
value-prof.h
value-query.cc Keep x_range_query NULL for global ranges. 2021-11-09 13:27:42 -05:00
value-query.h Keep x_range_query NULL for global ranges. 2021-11-09 13:27:42 -05:00
value-range-equiv.cc
value-range-equiv.h
value-range.cc Drop tree overflow in irange setter. 2021-11-15 17:31:50 +01:00
value-range.h Implement irange::debug() 2021-10-08 16:36:00 +02:00
value-relation.cc Cleanup path solver dumps. 2021-11-09 14:29:22 +01:00
value-relation.h path oracle: Do not look at root oracle for killed defs. 2021-11-06 16:33:03 +01:00
var-tracking.c var-tracking: Fix a wrong-debug issue caused by my r10-7665 var-tracking change [PR102441] 2021-10-10 12:16:41 +02:00
varasm.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
varasm.h Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
varpool.c Turn -fsemantic-interposition to optimization flag 2021-11-18 18:42:35 +01:00
vec-perm-indices.c
vec-perm-indices.h
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
vr-values.c Unify EVRP and VRP folding predicate message. 2021-10-28 10:48:39 -04:00
vr-values.h Move vrp_simplify_cond_using_ranges into the simplifier. 2021-10-25 19:39:50 -04:00
vtable-verify.c
vtable-verify.h
warning-control.cc Don't maintain a warning spec for 'UNKNOWN_LOCATION'/'BUILTINS_LOCATION' [PR101574] 2021-09-13 18:38:52 +02:00
web.c
wide-int-bitmask.h
wide-int-print.cc
wide-int-print.h
wide-int.cc Correct implementation of wi::clz 2021-09-06 22:50:45 +01:00
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.