8sa1-gcc/gcc
Thomas Koenig 3934b625ee re PR libfortran/82233 (execute_command_line causes program to stop when command fails (or does not exist))
2017-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/82233
	* intrinsics/execute_command_line.c (execute_command_line):
	No call to runtime_error if cmdstat is present.

2017-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/82233
	* gfortran.dg/execute_command_line_3.f90: New test.

From-SVN: r253593
2017-10-10 16:49:32 +00:00
..
ada [multiple changes] 2017-10-09 20:47:26 +00:00
brig [BRIGFE] Support BRIG_KIND_NONE directives. 2017-10-09 13:06:01 +00:00
c C: underline parameters in mismatching function calls 2017-10-04 14:10:59 +00:00
c-family re PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89) 2017-10-10 18:17:47 +02:00
common arm-common.c (arm_except_unwind_info): Handle DWARF2_UNWIND_INFO. 2017-10-08 08:10:41 +00:00
config rs6000: Move processor_costs to header 2017-10-10 01:05:37 +02:00
cp [C++ PATCH] set_global_binding tweak 2017-10-10 14:48:34 +00:00
doc Add targetm.insn_cost hook 2017-10-09 21:47:08 +02:00
fortran check.c (gfc_check_x): Remove function. 2017-10-08 18:02:31 +00:00
ginclude
go compiler: drop special handling of unexported func/var assembler names 2017-10-05 23:25:51 +00:00
jit jit: implement gcc_jit_context_new_rvalue_from_vector 2017-10-04 13:41:01 +00:00
lto Add some changelog entries that went astray during the machmode commits 2017-08-30 11:53:37 +00:00
objc c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than DECL_INITIAL. 2017-09-29 19:45:32 +02:00
objcp
po * de.po: Update. 2017-08-21 15:08:22 +01:00
testsuite re PR libfortran/82233 (execute_command_line causes program to stop when command fails (or does not exist)) 2017-10-10 16:49:32 +00:00
ABOUT-GCC-NLS
acinclude.m4
aclocal.m4
addresses.h
alias.c Turn HARD_REGNO_MODE_OK into a target hook 2017-09-04 10:49:59 +00:00
alias.h
alloc-pool.c Update copyright years. 2017-01-01 13:07:43 +01:00
alloc-pool.h
asan.c asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8... 2017-09-06 16:30:46 +02:00
asan.h
attribs.c Reduce lookup_attribute memory footprint. 2017-09-12 14:24:29 +00:00
attribs.h Reduce lookup_attribute memory footprint. 2017-09-12 14:24:29 +00:00
auto-inc-dec.c
auto-profile.c
auto-profile.h
backend.h
BASE-VER
basic-block.h
bb-reorder.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
bb-reorder.h
bitmap.c
bitmap.h
brig-builtins.def [BRIGFE] Changed pure attributes to const for the brig-builtins 2017-09-28 15:29:07 +00:00
bt-load.c
builtin-attrs.def builtin-attrs.def: Add comments. 2017-08-14 15:32:07 -06:00
builtin-types.def asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8... 2017-09-06 16:30:46 +02:00
builtins.c Turn CONSTANT_ALIGNMENT into a hook 2017-09-25 16:04:27 +00:00
builtins.def * builtins.def (BUILT_IN_SETJMP): Revert latest change. 2017-10-08 20:44:14 +00:00
builtins.h [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
caller-save.c [PATCH] remove some unneeded parens 2017-10-04 17:58:28 +00:00
calls.c Fix mismatched precisions in tree arithmetic 2017-10-02 09:45:40 +00:00
calls.h
ccmp.c
ccmp.h
cfg-flags.def
cfg.c
cfg.h
cfganal.c
cfganal.h
cfgbuild.c re PR target/81325 (-fcompare-debug failure on ppc64le) 2017-09-14 10:07:30 +02:00
cfgbuild.h
cfgcleanup.c
cfgcleanup.h
cfgexpand.c Store VECTOR_CST_NELTS directly in tree_node 2017-09-14 15:25:57 +00:00
cfgexpand.h
cfghooks.c
cfghooks.h
cfgloop.c cfgloop.h (sort_sibling_loops): Declare. 2017-09-25 13:19:16 +00:00
cfgloop.h cfgloop.h (sort_sibling_loops): Declare. 2017-09-25 13:19:16 +00:00
cfgloopanal.c
cfgloopmanip.c
cfgloopmanip.h
cfgrtl.c Replace insn_rtx_cost with insn_cost and pattern_cost 2017-10-09 21:44:13 +02:00
cfgrtl.h
cgraph.c ipa: fix dumping with deleted multiversioning nodes 2017-09-21 15:54:38 +03:00
cgraph.h ipa: fix dumping with deleted multiversioning nodes 2017-09-21 15:54:38 +03:00
cgraphbuild.c
cgraphclones.c
cgraphunit.c PR c/81854 - weak alias of an incompatible symbol accepted 2017-09-19 08:27:32 -06:00
ChangeLog tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes when copying loop nest with only one inner loop. 2017-10-10 13:58:30 +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.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
chkp-builtins.def
cif-code.def
cilk-builtins.def
cilk-common.c
cilk.h
cilkplus.def
collect2-aix.c
collect2-aix.h
collect2.c
collect2.h
collect-utils.c
collect-utils.h
combine-stack-adj.c combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack adjustments with REG_STACK_CHECK. 2017-09-19 23:43:28 -06:00
combine.c combine: Use insn_cost instead of pattern_cost everywhere 2017-10-09 21:45:50 +02:00
common.md
common.opt invoke.texi (Wsuggest-attribute=cold): Document. 2017-10-07 16:48:34 +00:00
compare-elim.c
conditions.h
config.build
config.gcc amo.h: New include file to provide ISA 3.0 atomic memory operation instruction support. 2017-10-09 18:20:01 +00:00
config.host
config.in
configure [ARC] Check the assembler for gdwar2 support. 2017-09-18 15:56:01 +02:00
configure.ac [ARC] Check the assembler for gdwar2 support. 2017-09-18 15:56:01 +02:00
context.c
context.h
convert.c Turn TRULY_NOOP_TRUNCATION into a hook 2017-09-15 13:47:41 +00:00
convert.h
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
coretypes.h Turn FUNCTION_ARG_PADDING into a target hook 2017-09-04 10:50:38 +00:00
coverage.c [19/77] Add a smallest_int_mode_for_size helper function 2017-08-30 11:10:44 +00:00
coverage.h
cppbuiltin.c
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c Drop df_ from df_read_modify_subreg_p 2017-08-30 15:28:18 +00:00
cse.c Add a partial_subreg_p predicate 2017-08-30 15:25:38 +00:00
cselib.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
cselib.h
cstamp-h.in
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
DATESTAMP Daily bump. 2017-10-10 00:16:23 +00:00
dbgcnt.c
dbgcnt.def
dbgcnt.h
dbxout.c re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
debug.h re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
defaults.h Turn CONSTANT_ALIGNMENT into a hook 2017-09-25 16:04:27 +00:00
DEV-PHASE
df-core.c
df-problems.c Drop df_ from df_read_modify_subreg_p 2017-08-30 15:28:18 +00:00
df-scan.c Drop df_ from df_read_modify_subreg_p 2017-08-30 15:28:18 +00:00
df.h Drop df_ from df_read_modify_subreg_p 2017-08-30 15:28:18 +00:00
dfp.c [2/77] Add an E_ prefix to case statements 2017-08-30 11:08:28 +00:00
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h re PR c/81233 (--Wdiscarded-qualifiers and Wincompatible-pointer-types missing important detail) 2017-08-09 11:28:22 +00:00
diagnostic-show-locus.c diagnostic-show-locus.c: remove unused field from class colorizer 2017-08-16 19:08:16 +00:00
diagnostic.c re PR c/81233 (--Wdiscarded-qualifiers and Wincompatible-pointer-types missing important detail) 2017-08-09 11:28:22 +00:00
diagnostic.def
diagnostic.h
dojump.c [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
dojump.h
dominance.c
dominance.h
domwalk.c invoke.texi (graphite-max-bbs-per-function): Remove. 2017-09-27 11:09:41 +00:00
domwalk.h invoke.texi (graphite-max-bbs-per-function): Remove. 2017-09-27 11:09:41 +00:00
double-int.c
double-int.h
dse.c Replace insn_rtx_cost with insn_cost and pattern_cost 2017-10-09 21:44:13 +02:00
dumpfile.c
dumpfile.h
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c re PR target/81361 (broken exception handling at -O2) 2017-09-18 09:15:32 +00:00
dwarf2out.c [PR82155] Fix crash in dwarf2out_abstract_function 2017-09-25 12:26:36 +00:00
dwarf2out.h
edit-context.c
edit-context.h
emit-rtl.c Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
emit-rtl.h
errors.c
errors.h
et-forest.c
et-forest.h
except.c except.c (setjmp_fn): New global variable. 2017-10-09 22:32:01 +00:00
except.h
exec-tool.in
explow.c explow.c (compute_stack_clash_protection_loop_data): Use CONST_INT_P instead of explicit test. 2017-09-20 15:59:50 -06:00
explow.h explow.c: Include "params.h". 2017-09-19 23:05:12 -06:00
expmed.c Turn TRULY_NOOP_TRUNCATION into a hook 2017-09-15 13:47:41 +00:00
expmed.h [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
expr.c Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
expr.h [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
fibonacci_heap.c
fibonacci_heap.h
file-find.c
file-find.h
final.c [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
fixed-value.c [67/77] Use scalar_mode in fixed-value.* 2017-08-30 11:19:47 +00:00
fixed-value.h [76/77] Add a scalar_mode_pod class 2017-08-30 11:20:55 +00:00
flag-types.h common.opt (-fstack-clash-protection): New option. 2017-09-19 22:56:54 -06:00
flags.h
fold-const-call.c [34/77] Add a SCALAR_INT_TYPE_MODE macro 2017-08-30 11:13:13 +00:00
fold-const-call.h
fold-const.c Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
fold-const.h re PR tree-optimization/82434 (-fstore-merging does not work reliably.) 2017-10-06 11:39:07 +02:00
fp-test.c
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
function-tests.c
function.c function.c (dump_stack_clash_frame_info): New function. 2017-09-19 23:23:51 -06:00
function.h function.c (dump_stack_clash_frame_info): New function. 2017-09-19 23:23:51 -06:00
fwprop.c [26/77] Use is_a <scalar_int_mode> in subreg/extract simplifications 2017-08-30 11:11:42 +00:00
gcc-ar.c
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h
gcc-symtab.h
gcc.c Add -static-pie to GCC driver to create static PIE 2017-09-12 09:30:28 -07:00
gcc.h
gcov-counter.def
gcov-dump.c
gcov-io.c
gcov-io.h
gcov-iov.c
gcov-tool.c
gcov.c
gcse-common.c
gcse-common.h
gcse.c
gcse.h
gdbasan.in
gdbhooks.py gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces instead of tab. 2017-09-04 10:10:51 +02:00
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 [3/77] Allow machine modes to be classes 2017-08-30 11:08:36 +00: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
gengtype.h
genhooks.c
genmatch.c
genmddeps.c
genmddump.c
genmodes.c qsort comparator consistency checking 2017-09-29 19:00:15 +03:00
genmultilib
genopinit.c
genoutput.c [1/77] Add an E_ prefix to mode names 2017-08-30 11:08:14 +00:00
genpeep.c
genpreds.c Turn HARD_REGNO_MODE_OK into a target hook 2017-09-04 10:49:59 +00:00
genrecog.c [1/77] Add an E_ prefix to mode names 2017-08-30 11:08:14 +00:00
gensupport.c
gensupport.h
gentarget-def.c
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c
ggc-tests.c
ggc.h
gimple-builder.c
gimple-builder.h
gimple-expr.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
gimple-expr.h
gimple-fold.c Add gimple_build_vector* helpers 2017-09-14 16:18:55 +00:00
gimple-fold.h Add gimple_build_vector* helpers 2017-09-14 16:18:55 +00:00
gimple-iterator.c
gimple-iterator.h
gimple-laddress.c
gimple-low.c
gimple-low.h
gimple-match-head.c
gimple-match.h
gimple-predict.h
gimple-pretty-print.c PR c/81117 - Improve buffer overflow checking in strncpy - part 1 2017-08-14 12:35:13 -06:00
gimple-pretty-print.h PR c/81117 - Improve buffer overflow checking in strncpy - part 1 2017-08-14 12:35:13 -06:00
gimple-ssa-backprop.c
gimple-ssa-isolate-paths.c Fix profile update in tree-ssa-isolate-paths.c (PR tree-optimization/82059). 2017-09-01 13:02:37 +00:00
gimple-ssa-nonnull-compare.c
gimple-ssa-split-paths.c
gimple-ssa-sprintf.c [20/77] Replace MODE_INT checks with is_int_mode 2017-08-30 11:10:53 +00:00
gimple-ssa-store-merging.c re PR tree-optimization/82434 (-fstore-merging does not work reliably.) 2017-10-06 11:39:07 +02:00
gimple-ssa-strength-reduction.c re PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010) 2017-09-29 14:55:14 +00:00
gimple-ssa-warn-alloca.c Fix mismatched precisions in tree arithmetic 2017-10-02 09:45:40 +00:00
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple-walk.c
gimple-walk.h
gimple.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
gimple.def
gimple.h
gimplify-me.c
gimplify-me.h
gimplify.c re PR c++/82159 (ICE: in assign_temp, at function.c:961) 2017-09-27 16:19:57 +02:00
gimplify.h
glimits.h
godump.c
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c graphite-dependences.c (scop_get_reads): Move code to... 2017-10-06 11:26:33 +00:00
graphite-isl-ast-to-gimple.c graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. 2017-10-06 07:06:17 +00:00
graphite-optimize-isl.c graphite-optimize-isl.c (get_schedule_for_node_st): Allow --param loop-block-tile-size=0 to disable tiling. 2017-09-27 12:21:40 +00:00
graphite-poly.c
graphite-scop-detection.c graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. 2017-10-06 07:06:17 +00:00
graphite-sese-to-poly.c graphite-sese-to-poly.c (extract_affine): For casts increasing precision do not perform modulo reduction. 2017-10-06 07:03:51 +00:00
graphite.c invoke.texi (graphite-max-bbs-per-function): Remove. 2017-09-27 11:09:41 +00:00
graphite.h graphite.h (scop::max_alias_set): New member. 2017-09-27 13:06:34 +00:00
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c PR82396 workaround 2017-10-06 11:54:51 +00:00
hard-reg-set.h Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
hash-map-tests.c
hash-map-traits.h
hash-map.h
hash-set-tests.c
hash-set.h
hash-table.c
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.c Turn TRULY_NOOP_TRUNCATION into a hook 2017-09-15 13:47:41 +00:00
hooks.h Turn TRULY_NOOP_TRUNCATION into a hook 2017-09-15 13:47:41 +00:00
host-default.c
hosthooks-def.h
hosthooks.h
hsa-brig-format.h
hsa-brig.c [9/77] Add SCALAR_FLOAT_TYPE_MODE 2017-08-30 11:09:27 +00:00
hsa-builtins.def
hsa-common.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
hsa-common.h [PR 82416] Do not extend operands to at least 32 bits 2017-10-09 11:41:44 +02:00
hsa-dump.c
hsa-gen.c [PR 82416] Do not extend operands to at least 32 bits 2017-10-09 11:41:44 +02:00
hsa-regalloc.c Make HSA resilient to side-effects of split_edge 2017-09-11 11:09:26 +02:00
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c Replace insn_rtx_cost with insn_cost and pattern_cost 2017-10-09 21:44:13 +02:00
ifcvt.h
inchash.c
inchash.h
incpath.c
incpath.h
init-regs.c
input.c re PR c/81417 (-Wsign-compare should print types being compared) 2017-08-09 08:51:20 +00:00
input.h re PR c/81417 (-Wsign-compare should print types being compared) 2017-08-09 08:51:20 +00:00
insn-addr.h
insn-notes.def
internal-fn.c [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
internal-fn.def Add missing ECF_NOTHROW flags to internal.def 2017-08-17 16:31:09 +00:00
internal-fn.h
intl.c
intl.h
ipa-chkp.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
ipa-chkp.h
ipa-comdats.c
ipa-cp.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
ipa-devirt.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
ipa-fnsummary.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
ipa-fnsummary.h
ipa-hsa.c
ipa-icf-gimple.c Fix IPA ICF with ASM statements (PR inline-asm/82001). 2017-08-30 12:38:31 +00:00
ipa-icf-gimple.h Fix IPA ICF with ASM statements (PR inline-asm/82001). 2017-08-30 12:38:31 +00:00
ipa-icf.c
ipa-icf.h
ipa-inline-analysis.c
ipa-inline-transform.c
ipa-inline.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
ipa-inline.h
ipa-polymorphic-call.c
ipa-predicate.c
ipa-predicate.h
ipa-profile.c
ipa-prop.c Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
ipa-prop.h
ipa-pure-const.c invoke.texi (Wsuggest-attribute=cold): Document. 2017-10-07 16:48:34 +00:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c
ipa-utils.c
ipa-utils.h
ipa-visibility.c Introduce TARGET_SUPPORTS_ALIASES 2017-08-11 08:14:54 +00:00
ipa.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
ira-build.c Add a partial_subreg_p predicate 2017-08-30 15:25:38 +00:00
ira-color.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
ira-conflicts.c Turn HARD_REGNO_CALL_PART_CLOBBERED into a target hook 2017-09-04 10:49:21 +00:00
ira-costs.c re PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant) 2017-09-29 17:39:58 +00:00
ira-emit.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
ira-int.h Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
ira-lives.c Drop df_ from df_read_modify_subreg_p 2017-08-30 15:28:18 +00:00
ira.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
ira.h Turn HARD_REGNO_MODE_OK into a target hook 2017-09-04 10:49:59 +00:00
is-a.h [59/77] Add a rtx_jump_table_data::get_data_mode helper 2017-08-30 11:18:37 +00:00
jump.c
langhooks-def.h PR c++/70029 - ICE with ref-qualifier and -flto 2017-09-08 18:39:17 -04:00
langhooks.c
langhooks.h PR c++/70029 - ICE with ref-qualifier and -flto 2017-09-08 18:39:17 -04:00
LANGUAGES
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
loop-init.c
loop-invariant.c [25/77] Use is_a <scalar_int_mode> for bitmask optimisations 2017-08-30 11:11:32 +00:00
loop-iv.c tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
loop-unroll.c Add copy_rtx call to RTL loop unroller 2017-09-21 11:10:48 +00:00
loop-unroll.h
lower-subreg.c Make mode_for_size return an opt_mode 2017-09-05 19:57:18 +00:00
lower-subreg.h [16/77] Add scalar_int_mode_pod 2017-08-30 11:10:18 +00:00
lra-assigns.c lra: make reload_pseudo_compare_func a proper comparator 2017-09-19 13:16:20 +03:00
lra-coalesce.c Add a partial_subreg_p predicate 2017-08-30 15:25:38 +00:00
lra-constraints.c re PR rtl-optimization/82338 (valgrind error in inherit_in_ebb) 2017-09-29 17:15:24 +00:00
lra-eliminations.c Make more use of paradoxical_subreg_p 2017-08-22 16:14:48 +00:00
lra-int.h
lra-lives.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
lra-remat.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
lra-spills.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
lra.c Make more use of end_hard_regno 2017-09-12 13:28:27 +00:00
lra.h
lto-cgraph.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
lto-compress.c
lto-compress.h
lto-opts.c
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c [6/77] Make GET_MODE_WIDER return an opt_mode 2017-08-30 11:09:01 +00:00
lto-streamer-out.c re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
lto-streamer.c
lto-streamer.h re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
lto-wrapper.c re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
machmode.def
machmode.h Turn TRULY_NOOP_TRUNCATION into a hook 2017-09-15 13:47:41 +00:00
main.c
Makefile.in Makefile.in (install-mkheaders): Fix typo, where the multi_dir variable was referenced as multidir in command. 2017-08-07 19:55:55 +00:00
match.pd Fix mismatched precisions in tree arithmetic 2017-10-02 09:45:40 +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 Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
modulo-sched.c
multiple_target.c
omp-builtins.def
omp-expand.c omp-expand.c (adjust_context_scope): New function. 2017-10-02 00:27:21 +00:00
omp-expand.h
omp-general.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
omp-general.h
omp-grid.c
omp-grid.h
omp-low.c re PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generated functions) 2017-10-04 09:50:38 +02:00
omp-low.h
omp-offload.c omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on non-SIMT targets in acc vector loops. 2017-09-18 07:15:37 -07:00
omp-offload.h
omp-simd-clone.c [65/77] Add a SCALAR_TYPE_MODE macro 2017-08-30 11:19:29 +00:00
ONEWS
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-read.awk
optabs-libfuncs.c [20/77] Replace MODE_INT checks with is_int_mode 2017-08-30 11:10:53 +00:00
optabs-libfuncs.h
optabs-query.c Update interface to TARGET_VECTORIZE_VEC_PERM_CONST_OK 2017-09-25 12:57:49 +00:00
optabs-query.h Use vec<> for constant permute masks 2017-09-14 16:04:32 +00:00
optabs-tree.c
optabs-tree.h
optabs.c Make mode_for_vector return an opt_mode 2017-09-05 19:57:39 +00:00
optabs.def re PR middle-end/19706 (Recognize common Fortran usages of copysign.) 2017-08-08 13:15:44 +00:00
optabs.h
optc-gen.awk enable handling of -gno- command-line options as negated prefixes 2017-09-21 02:18:02 +00:00
optc-save-gen.awk
opth-gen.awk
opts-common.c enable handling of -gno- command-line options as negated prefixes 2017-09-21 02:18:02 +00:00
opts-diagnostic.h
opts-global.c Fix --help=target (PR other/39851). 2017-08-29 07:46:10 +00:00
opts.c asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8... 2017-09-06 16:30:46 +02:00
opts.h Fix --help=target (PR other/39851). 2017-08-29 07:46:10 +00:00
output.h re PR target/81979 (Assembler messages: Error: can't resolve .got2' {.got2 section} - .LCF0' {.text.unlikely section}) 2017-09-07 13:20:40 +02:00
params-enum.h
params-list.h
params-options.h
params.c
params.def graphite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphite-allow-codegen-errors=0 ICE. 2017-10-02 10:04:00 +00:00
params.h
pass_manager.h
passes.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
passes.def passes.def (pass_split_crit_edges): Remove instance before PRE. 2017-09-07 07:44:43 +00:00
plugin.c
plugin.def
plugin.h
postreload-gcse.c
postreload.c Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
predict.c invoke.texi (Wsuggest-attribute=cold): Document. 2017-10-07 16:48:34 +00:00
predict.def
predict.h invoke.texi (Wsuggest-attribute=cold): Document. 2017-10-07 16:48:34 +00:00
prefix.c
prefix.h
pretty-print.c PR c/81859 - [8 Regression] valgrind error from warn_about_normalization 2017-08-17 10:50:06 -06:00
pretty-print.h
print-rtl-function.c function.c (fndecl_name): Use verbosity 1 (no arguments) for lang_hooks.decl_printable_name. 2017-08-23 13:44:20 +00:00
print-rtl.c print-rtl: NOT is ~, not ! 2017-08-07 12:21:32 +02:00
print-rtl.h
print-tree.c Add warn_if_not_aligned attribute 2017-08-18 02:38:38 -07:00
print-tree.h
profile-count.c
profile-count.h
profile.c
profile.h
read-md.c
read-md.h Pass rtx and index to read-md.c iterator routines 2017-08-21 09:51:14 +00:00
read-rtl-function.c
read-rtl-function.h
read-rtl.c Pass rtx and index to read-md.c iterator routines 2017-08-21 09:51:14 +00:00
README.Portability
real.c
real.h (decimal_)float_mode_for_size in real.h 2017-09-05 19:57:09 +00:00
realmpfr.c
realmpfr.h
recog.c Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
recog.h
ree.c Use hard_regno_nregs instead of HARD_REGNO_NREGS 2017-09-12 13:29:18 +00:00
reg-notes.def combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack adjustments with REG_STACK_CHECK. 2017-09-19 23:43:28 -06:00
reg-stack.c [4/77] Add FOR_EACH iterators for modes 2017-08-30 11:08:44 +00:00
regcprop.c Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
regcprop.h
reginfo.c Turn HARD_REGNO_NREGS into a target hook 2017-09-12 13:29:36 +00:00
regrename.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
regrename.h
regs.h Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
regset.h
regstat.c
reload1.c Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
reload.c Turn CANNOT_CHANGE_MODE_CLASS into a hook 2017-09-15 12:56:34 +00:00
reload.h
reorg.c
resource.c
resource.h
rtl-chkp.c
rtl-chkp.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-tests.c
rtl.c
rtl.def
rtl.h Replace insn_rtx_cost with insn_cost and pattern_cost 2017-10-09 21:44:13 +02:00
rtlanal.c Add targetm.insn_cost hook 2017-10-09 21:47:08 +02:00
rtlhash.c
rtlhash.h
rtlhooks-def.h [49/77] Simplify nonzero/num_sign_bits hooks 2017-08-30 11:17:12 +00:00
rtlhooks.c Turn TRULY_NOOP_TRUNCATION into a hook 2017-09-15 13:47:41 +00:00
run-rtl-passes.c
run-rtl-passes.h
sancov.c Fix SPARC bootstrap: sancov.c needs memmodel.h 2017-09-08 08:35:23 +00:00
sanitizer.def asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8... 2017-09-06 16:30:46 +02:00
sanopt.c Add sanopt support for UBSAN_PTR. 2017-10-06 14:14:14 +00:00
sbitmap.c sbitmap.c (bitmap_bit_in_range_p): New function. 2017-09-29 12:20:41 -06:00
sbitmap.h sbitmap.c (bitmap_bit_in_range_p): New function. 2017-09-29 12:20:41 -06:00
sched-deps.c combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack adjustments with REG_STACK_CHECK. 2017-09-19 23:43:28 -06:00
sched-ebb.c
sched-int.h Revert r253399: 2017-10-04 16:40:44 +00:00
sched-rgn.c Rename existing insn_cost to insn_sched_cost 2017-09-21 16:32:34 +02:00
sdbout.c [74/77] Various small scalar_mode changes 2017-08-30 11:20:47 +00:00
sdbout.h
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c Rename existing insn_cost to insn_sched_cost 2017-09-21 16:32:34 +02:00
sel-sched-ir.h
sel-sched.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
sel-sched.h
selftest-rtl.c
selftest-rtl.h
selftest-run-tests.c
selftest.c
selftest.h
sese.c re PR tree-optimization/82449 (code-gen error in get_rename_from_scev) 2017-10-09 13:50:10 +00:00
sese.h graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. 2017-10-06 07:06:17 +00:00
shrink-wrap.c
shrink-wrap.h
signop.h
simplify-rtx.c simplify-rtx: Remove non-simplifying simplification (PR77729) 2017-10-03 18:02:38 +02:00
sparseset.c
sparseset.h
spellcheck-tree.c
spellcheck-tree.h
spellcheck.c
spellcheck.h
sreal.c
sreal.h
ssa-iterators.h
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c Fix emission of exception dispatch (PR middle-end/82154). 2017-09-13 19:12:08 +00:00
stmt.h
stor-layout.c * stor-layout.c (bit_from_pos): Do not distribute the conversion. 2017-09-21 15:45:36 +00:00
stor-layout.h Make mode_for_size_tree return an opt_mode 2017-09-05 19:57:56 +00:00
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
substring-locations.c
substring-locations.h
symbol-summary.h
symtab.c Introduce TARGET_SUPPORTS_ALIASES 2017-08-11 08:14:54 +00:00
sync-builtins.def
system.h qsort comparator consistency checking 2017-09-29 19:00:15 +03:00
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def retire mem_signal_fence pattern 2017-09-01 17:08:42 +03:00
target.def Add targetm.insn_cost hook 2017-10-09 21:47:08 +02:00
target.h Change permute index type to unsigned short 2017-09-25 13:26:12 +00:00
targhooks.c targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix return type to match prototype and documentation. 2017-10-10 00:42:08 -06:00
targhooks.h Turn CONSTANT_ALIGNMENT into a hook 2017-09-25 16:04:27 +00:00
timevar.c
timevar.def Make expansion of balanced binary trees of switches on tree level. 2017-08-29 14:12:44 +00:00
timevar.h
tlink.c
toplev.c [PATCH] remove some unneeded parens 2017-10-04 17:58:28 +00:00
toplev.h toplev: read from /dev/urandom only when needed 2017-09-21 15:58:14 +03:00
tracer.c
tracer.h
trans-mem.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
trans-mem.h
tree-affine.c
tree-affine.h
tree-call-cdce.c Set the call nothrow flag more often 2017-08-29 07:47:05 +00:00
tree-cfg.c tree-cfg.c (verify_gimple_assign_binary): Add verification for WIDEN_SUM_EXPR... 2017-09-13 08:09:31 +00:00
tree-cfg.h Learn CFG cleanup to transform single case switches to gcond. 2017-09-05 08:12:27 +00:00
tree-cfgcleanup.c tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting blocks if SCEV is active. 2017-10-10 13:26:15 +00:00
tree-cfgcleanup.h
tree-chkp-opt.c
tree-chkp.c Do not instrument void variables with MPX (PR tree-opt/79987). 2017-08-11 10:01:13 +00:00
tree-chkp.h
tree-chrec.c re PR tree-optimization/82449 (code-gen error in get_rename_from_scev) 2017-10-09 13:50:10 +00:00
tree-chrec.h re PR tree-optimization/82449 (code-gen error in get_rename_from_scev) 2017-10-09 13:50:10 +00:00
tree-complex.c
tree-core.h Store VECTOR_CST_NELTS directly in tree_node 2017-09-14 15:25:57 +00:00
tree-data-ref.c re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses) 2017-10-09 14:13:43 +00:00
tree-data-ref.h
tree-dfa.c tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT. 2017-10-02 17:48:55 +02:00
tree-dfa.h
tree-diagnostic.c PR c/81117 - Improve buffer overflow checking in strncpy - part 1 2017-08-14 12:35:13 -06:00
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c tree-eh.c (lower_try_finally_switch): Set the location of the finally on the entire header of the finally block in... 2017-08-30 19:10:38 +00:00
tree-eh.h
tree-emutls.c
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c re PR tree-optimization/82291 (wrong code at -O3 on x86_64-linux-gnu) 2017-09-22 12:00:55 +00:00
tree-if-conv.h
tree-inline.c re PR sanitizer/81715 (asan-stack=1 redzone allocation is too inflexible) 2017-09-21 14:26:34 +02:00
tree-inline.h
tree-into-ssa.c graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. 2017-10-06 07:06:17 +00:00
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c tree-loop-distribution.c (generate_loops_for_partition): Remove inner loop's exit stmt by making it always exit the loop... 2017-10-10 09:02:13 +00:00
tree-nested.c [35/77] Add uses of as_a <scalar_int_mode> 2017-08-30 11:13:29 +00:00
tree-nested.h
tree-nrv.c
tree-object-size.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-object-size.h
tree-outof-ssa.c tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
tree-outof-ssa.h tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
tree-parloops.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-parloops.h
tree-pass.h Make expansion of balanced binary trees of switches on tree level. 2017-08-29 14:12:44 +00:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c re PR tree-optimization/81744 (ICE: verify_ssa failed, at tree-ssa.c:1186) 2017-08-08 11:32:05 +00:00
tree-pretty-print.c function.c (fndecl_name): Use verbosity 1 (no arguments) for lang_hooks.decl_printable_name. 2017-08-23 13:44:20 +00:00
tree-pretty-print.h PR c/81117 - Improve buffer overflow checking in strncpy - part 1 2017-08-14 12:35:13 -06:00
tree-profile.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-scalar-evolution.c tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting blocks if SCEV is active. 2017-10-10 13:26:15 +00:00
tree-scalar-evolution.h
tree-sra.c [PR 82363] Fix thinko in SRA subaccess propagation 2017-10-03 13:43:45 +02:00
tree-ssa-address.c [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
tree-ssa-address.h
tree-ssa-alias.c re PR tree-optimization/81884 (Invalid code generation with zero size arrays or flexible array members) 2017-08-21 07:37:59 +00:00
tree-ssa-alias.h
tree-ssa-ccp.c Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
tree-ssa-ccp.h
tree-ssa-coalesce.c tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
tree-ssa-coalesce.h tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 2017-10-08 21:13:52 +00:00
tree-ssa-copy.c
tree-ssa-dce.c
tree-ssa-dom.c tree-ssa-dom.c (optimize_stmt): Make this a method within the dom_opt_dom_walker class with direct access to... 2017-10-01 09:22:39 -06:00
tree-ssa-dom.h
tree-ssa-dse.c re PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu in 64-bit mode) 2017-10-02 17:44:10 +02:00
tree-ssa-forwprop.c Use vec<> for constant permute masks 2017-09-14 16:04:32 +00:00
tree-ssa-ifcombine.c asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8... 2017-09-06 16:30:46 +02:00
tree-ssa-live.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-ssa-live.h
tree-ssa-loop-ch.c re PR middle-end/81832 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2273) 2017-08-16 15:02:03 +00:00
tree-ssa-loop-im.c tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member. 2017-08-21 07:21:33 +00:00
tree-ssa-loop-ivcanon.c
tree-ssa-loop-ivopts.c [62/77] Big machine_mode to scalar_int_mode replacement 2017-08-30 11:18:59 +00:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c re PR tree-optimization/82163 (ICE on valid code at -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707) 2017-09-25 17:32:36 +00:00
tree-ssa-loop-manip.h re PR tree-optimization/82163 (ICE on valid code at -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707) 2017-09-25 17:32:36 +00:00
tree-ssa-loop-niter.c re PR tree-optimization/81913 (wrong code at -O1) 2017-08-24 15:38:39 +00:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c
tree-ssa-loop-split.c
tree-ssa-loop-unswitch.c
tree-ssa-loop.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-ssa-loop.h
tree-ssa-math-opts.c Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
tree-ssa-operands.c
tree-ssa-operands.h
tree-ssa-phionlycprop.c
tree-ssa-phiopt.c
tree-ssa-phiprop.c
tree-ssa-pre.c re PR tree-optimization/82157 (ICE on valid code at -O2 and -O3: cannot update SSA form) 2017-09-12 14:15:37 +00:00
tree-ssa-propagate.c
tree-ssa-propagate.h
tree-ssa-reassoc.c re PR tree-optimization/82381 (internal compiler error: qsort checking failed) 2017-10-04 09:52:26 +02:00
tree-ssa-sccvn.c re PR tree-optimization/82320 (Compile time hog w/ -O) 2017-09-26 07:29:51 +00:00
tree-ssa-sccvn.h
tree-ssa-scopedtables.c re PR tree-optimization/82052 (ICE with "-O3 -m32" on x86_64-linux-gnu (internal compiler error: in pop_to_marker, at tree-ssa-scopedtables.c:71)) 2017-09-01 09:32:15 -06:00
tree-ssa-scopedtables.h re PR tree-optimization/81741 (Misoptimisation : replacing a constant field read access by a function call) 2017-08-22 09:13:09 -06:00
tree-ssa-sink.c
tree-ssa-strlen.c Turn SLOW_UNALIGNED_ACCESS into a target hook 2017-09-12 13:27:55 +00:00
tree-ssa-structalias.c tree-ssa-structalias.c (solve_graph): When propagating to successors update the graphs succ edges and avoid duplicate... 2017-08-17 12:10:11 +00:00
tree-ssa-tail-merge.c
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadbackward.c tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC vectors heap vectors. 2017-09-12 07:24:32 +00:00
tree-ssa-threadbackward.h
tree-ssa-threadedge.c
tree-ssa-threadedge.h
tree-ssa-threadupdate.c tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC vectors heap vectors. 2017-09-12 07:24:32 +00:00
tree-ssa-threadupdate.h
tree-ssa-uncprop.c
tree-ssa-uninit.c
tree-ssa.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-ssa.h
tree-ssanames.c [34/77] Add a SCALAR_INT_TYPE_MODE macro 2017-08-30 11:13:13 +00:00
tree-ssanames.h
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c [76/77] Add a scalar_mode_pod class 2017-08-30 11:20:55 +00:00
tree-streamer-out.c re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c tree-switch-conversion.c (do_jump_if_equal, [...]): Update profile. 2017-10-07 16:33:26 +00:00
tree-tailcall.c Add a type_has_mode_precision_p helper function 2017-08-21 14:50:56 +00:00
tree-vect-data-refs.c re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses) 2017-10-06 09:27:09 +00:00
tree-vect-generic.c Use vec<> for constant permute masks 2017-09-14 16:04:32 +00:00
tree-vect-loop-manip.c tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes when copying loop nest with only one inner loop. 2017-10-10 13:58:30 +00:00
tree-vect-loop.c Move computation of SLP_TREE_NUMBER_OF_VEC_STMTS 2017-09-18 15:50:03 +00:00
tree-vect-patterns.c re PR tree-optimization/82285 (Optimizing error when using enumeration) 2017-09-25 11:40:23 +00:00
tree-vect-slp.c re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410) 2017-10-06 07:03:23 +00:00
tree-vect-stmts.c re PR tree-optimization/82434 (-fstore-merging does not work reliably.) 2017-10-06 11:39:07 +02:00
tree-vectorizer.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tree-vectorizer.h Let the target choose a vectorisation alignment 2017-09-22 16:44:29 +00:00
tree-vrp.c Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
tree-vrp.h
tree.c Fix unguarded uses of tree_to_uhwi 2017-09-21 11:06:48 +00:00
tree.def
tree.h Fix mismatched precisions in tree arithmetic 2017-10-02 09:45:40 +00:00
treestruct.def
tsan.c trans.c: Include header files. 2017-08-08 04:46:51 +00:00
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c
typed-splay-tree.h
ubsan.c [65/77] Add a SCALAR_TYPE_MODE macro 2017-08-30 11:19:29 +00:00
ubsan.h
valtrack.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
valtrack.h
value-prof.c
value-prof.h
var-tracking.c Convert hard_regno_nregs to a function 2017-09-12 13:29:05 +00:00
varasm.c Turn CONSTANT_ALIGNMENT into a hook 2017-09-25 16:04:27 +00:00
varasm.h
varpool.c Introduce TARGET_SUPPORTS_ALIASES 2017-08-11 08:14:54 +00:00
vec.c qsort comparator consistency checking 2017-09-29 19:00:15 +03:00
vec.h
version.c
version.h
vmsdbg.h
vmsdbgout.c re PR go/78628 (GO fails to build a translation unit decl) 2017-08-21 10:29:00 +00:00
vtable-verify.c
vtable-verify.h
web.c
wide-int-print.cc
wide-int-print.h
wide-int.cc
wide-int.h Allow non-wi <op> wi 2017-10-09 10:51:45 +00:00
xcoff.h
xcoffout.c
xcoffout.h

Copyright (C) 2000-2017 Free Software Foundation, Inc.

This file is intended to contain a few notes about writing C code
within GCC so that it compiles without error on the full range of
compilers GCC needs to be able to compile on.

The problem is that many ISO-standard constructs are not accepted by
either old or buggy compilers, and we keep getting bitten by them.
This knowledge until now has been sparsely spread around, so I
thought I'd collect it in one useful place.  Please add and correct
any problems as you come across them.

I'm going to start from a base of the ISO C90 standard, since that is
probably what most people code to naturally.  Obviously using
constructs introduced after that is not a good idea.

For the complete coding style conventions used in GCC, please read
http://gcc.gnu.org/codingconventions.html


String literals
---------------

Some compilers like MSVC++ have fairly low limits on the maximum
length of a string literal; 509 is the lowest we've come across.  You
may need to break up a long printf statement into many smaller ones.


Empty macro arguments
---------------------

ISO C (6.8.3 in the 1990 standard) specifies the following:

If (before argument substitution) any argument consists of no
preprocessing tokens, the behavior is undefined.

This was relaxed by ISO C99, but some older compilers emit an error,
so code like

#define foo(x, y) x y
foo (bar, )

needs to be coded in some other way.


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

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

  if (P)
    free (P);

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

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

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



Trigraphs
---------

You weren't going to use them anyway, but some otherwise ISO C
compliant compilers do not accept trigraphs.


Suffixes on Integer Constants
-----------------------------

You should never use a 'l' suffix on integer constants ('L' is fine),
since it can easily be confused with the number '1'.


			Common Coding Pitfalls
			======================

errno
-----

errno might be declared as a macro.


Implicit int
------------

In C, the 'int' keyword can often be omitted from type declarations.
For instance, you can write

  unsigned variable;

as shorthand for

  unsigned int variable;

There are several places where this can cause trouble.  First, suppose
'variable' is a long; then you might think

  (unsigned) variable

would convert it to unsigned long.  It does not.  It converts to
unsigned int.  This mostly causes problems on 64-bit platforms, where
long and int are not the same size.

Second, if you write a function definition with no return type at
all:

  operate (int a, int b)
  {
    ...
  }

that function is expected to return int, *not* void.  GCC will warn
about this.

Implicit function declarations always have return type int.  So if you
correct the above definition to

  void
  operate (int a, int b)
  ...

but operate() is called above its definition, you will get an error
about a "type mismatch with previous implicit declaration".  The cure
is to prototype all functions at the top of the file, or in an
appropriate header.

Char vs unsigned char vs int
----------------------------

In C, unqualified 'char' may be either signed or unsigned; it is the
implementation's choice.  When you are processing 7-bit ASCII, it does
not matter.  But when your program must handle arbitrary binary data,
or fully 8-bit character sets, you have a problem.  The most obvious
issue is if you have a look-up table indexed by characters.

For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
true.  But if you read '\341' from a file and store it in a plain
char, isalpha(c) may look up character 225, or it may look up
character -31.  And the ctype table has no entry at offset -31, so
your program will crash.  (If you're lucky.)

It is wise to use unsigned char everywhere you possibly can.  This
avoids all these problems.  Unfortunately, the routines in <string.h>
take plain char arguments, so you have to remember to cast them back
and forth - or avoid the use of strxxx() functions, which is probably
a good idea anyway.

Another common mistake is to use either char or unsigned char to
receive the result of getc() or related stdio functions.  They may
return EOF, which is outside the range of values representable by
char.  If you use char, some legal character value may be confused
with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
The correct choice is int.

A more subtle version of the same mistake might look like this:

  unsigned char pushback[NPUSHBACK];
  int pbidx;
  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
  ...
  unget(EOF);

which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
WITH UMLAUT.


Other common pitfalls
---------------------

o Expecting 'plain' char to be either sign or unsigned extending.

o Shifting an item by a negative amount or by greater than or equal to
  the number of bits in a type (expecting shifts by 32 to be sensible
  has caused quite a number of bugs at least in the early days).

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

o Host vs. target floating point representation, including emitting NaNs
  and Infinities in a form that the assembler handles.

o qsort being an unstable sort function (unstable in the sense that
  multiple items that sort the same may be sorted in different orders
  by different qsort functions).

o Passing incorrect types to fprintf and friends.

o Adding a function declaration for a module declared in another file to
  a .c file instead of to a .h file.