gcc/gcc
Jiong Wang 79496620fa [AArch64] Rename SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE
2015-08-28  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
	SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
	(aarch64_symbol_type): Likewise.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Likewise.
	(aarch64_expand_mov_immediate): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_classify_tls_symbol): Likewise.

From-SVN: r227294
2015-08-28 08:53:37 +00:00
..
ada Make the stack non-executable in GNAT tools 2015-08-19 15:00:24 +02:00
c remove more useless typedefs 2015-08-19 02:48:48 +00:00
c-family re PR middle-end/67330 (ICE handling weak attributes) 2015-08-25 20:28:59 +00:00
common [AArch64] Break -mcpu tie between the compiler and assembler 2015-08-20 10:18:54 +00:00
config [AArch64] Rename SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE 2015-08-28 08:53:37 +00:00
cp re PR c++/63693 (ICE in resolve_typename_type) 2015-08-22 17:44:46 +00:00
doc remove -floop-* flags 2015-08-27 19:07:04 +00:00
fortran re PR fortran/62536 (ICE (segfault) for invalid END BLOCK statement) 2015-08-24 16:29:59 +00:00
ginclude
go compiler: Report unused variables initialized to function literals. 2015-08-27 23:09:37 +00:00
java
jit Support embedding the driver in-process within libgccjit 2015-08-25 20:25:05 +00:00
lto remove more useless typedefs 2015-08-19 02:48:48 +00:00
objc remove more useless typedefs 2015-08-19 02:48:48 +00:00
objcp
po * da.po: Update. 2015-08-17 18:13:16 +01:00
testsuite target-supports.exp (check-effective_target_vect_double): Enable for Power targets with VSX hardware available. 2015-08-27 22:13:43 +00:00
ABOUT-GCC-NLS
BASE-VER
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog [AArch64] Rename SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE 2015-08-28 08:53:37 +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.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
DATESTAMP Daily bump. 2015-08-28 00:16:12 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in remove -floop-* flags 2015-08-27 19:07:04 +00:00
ONEWS
README.Portability
acinclude.m4 re PR other/66259 (Combined gcc and binutils build from git-master fails, with gas/as-new not existing) 2015-07-24 12:20:44 -06:00
aclocal.m4
addresses.h
alias.c fix sched compare regression 2015-08-21 20:03:14 +00:00
alias.h
alloc-pool.c
alloc-pool.h
asan.c
asan.h
attribs.c
attribs.h
auto-inc-dec.c
auto-profile.c
auto-profile.h
backend.h
basic-block.h
bb-reorder.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
bb-reorder.h
bitmap.c
bitmap.h
bt-load.c remove useless typedefs 2015-08-19 02:48:16 +00:00
builtin-attrs.def
builtin-types.def
builtins.c genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
builtins.def re PR middle-end/36757 (__builtin_signbit should be type-generic) 2015-08-18 20:07:57 +00:00
builtins.h
caller-save.c
calls.c genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
calls.h
ccmp.c
ccmp.h
cfg-flags.def
cfg.c
cfg.h
cfganal.c
cfganal.h
cfgbuild.c
cfgbuild.h
cfgcleanup.c
cfgcleanup.h
cfgexpand.c [PR64164] fix regressions reported on m68k and armeb 2015-08-19 17:00:32 +00:00
cfgexpand.h [PR64164] fix regressions reported on m68k and armeb 2015-08-19 17:00:32 +00:00
cfghooks.c
cfghooks.h
cfgloop.c
cfgloop.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
cfgloopanal.c
cfgloopmanip.c
cfgloopmanip.h
cfgrtl.c
cfgrtl.h
cgraph.c
cgraph.h remove useless typedefs 2015-08-19 02:48:16 +00:00
cgraphbuild.c
cgraphclones.c
cgraphunit.c cgraphunit.c (symbol_table::compile): Move early debug generation and finish... 2015-08-28 07:47:37 +00:00
chkp-builtins.def
cif-code.def
cilk-builtins.def
cilk-common.c
cilk.h
cilkplus.def
collect-utils.c
collect-utils.h
collect2-aix.c
collect2-aix.h
collect2.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
collect2.h
combine-stack-adj.c
combine.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
common.md
common.opt remove -floop-* flags 2015-08-27 19:07:04 +00:00
compare-elim.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
conditions.h
config.build * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*. 2015-08-21 17:44:47 +00:00
config.gcc Use __cxa_atexit on Solaris 12+ 2015-08-27 12:00:32 +00:00
config.host configure.ac: Remove uwin* cases. 2015-08-21 17:38:01 +00:00
config.in common.opt (fstack-protector): Initialize to -1. 2015-08-19 16:07:06 -06:00
configure * configure: Regenerate. 2015-08-27 16:15:45 +00:00
configure.ac configure.ac: Remove uwin* cases. 2015-08-21 17:38:01 +00:00
context.c
context.h
convert.c
convert.h
coretypes.h coretypes.h (enum symbol_visibility): Relocate here. 2015-08-05 23:18:09 +00:00
coverage.c
coverage.h
cppbuiltin.c
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c
cse.c cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the REG_EQUAL are... 2015-08-05 01:08:49 +00:00
cselib.c
cselib.h
cstamp-h.in
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
dbgcnt.c
dbgcnt.def
dbgcnt.h
dbxout.c
dbxout.h
dce.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
dce.h
ddg.c
ddg.h
debug.c
debug.h Add DWARF2_LINENO_DEBUGGING_INFO, and use it for nvptx 2015-08-14 12:37:14 +02:00
defaults.h add default for CONSTANT_ALIGNMENT 2015-08-21 01:15:33 +00:00
df-core.c
df-problems.c
df-scan.c df-scan.c (df_insn_info_init_fields): New function, split out from... 2015-08-24 17:58:42 +00:00
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic.c re PR c/66098 (#pragma diagnostic 'ignored' not fully undone by pop for strict-overflow) 2015-08-11 13:34:00 +00:00
diagnostic.def
diagnostic.h
dojump.c
dojump.h
dominance.c Refactor dominance.c: define dom_info as C++ class 2015-08-22 03:20:13 +00:00
dominance.h
domwalk.c
domwalk.h
double-int.c
double-int.h
dse.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
dumpfile.c
dumpfile.h
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
dwarf2out.c remove useless typedefs 2015-08-19 02:48:16 +00:00
dwarf2out.h remove useless typedefs 2015-08-19 02:48:16 +00:00
emit-rtl.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
emit-rtl.h
errors.c
errors.h
et-forest.c
et-forest.h
except.c target-insns.def (eh_return): New targetm instruction pattern. 2015-07-28 19:54:06 +00:00
except.h
exec-tool.in
explow.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
explow.h [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
expmed.c rtl.h (rtvec_all_equal_p): Declare. 2015-08-20 19:04:34 +00:00
expmed.h
expr.c [Patch][expand] Check gimple statement to improve LSHIFT_EXP expand 2015-08-19 22:55:28 +00:00
expr.h [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
fibonacci_heap.h
file-find.c
file-find.h
final.c remove useless typedefs 2015-08-19 02:48:16 +00:00
fixed-value.c
fixed-value.h
flag-types.h coretypes.h (enum symbol_visibility): Relocate here. 2015-08-05 23:18:09 +00:00
flags.h
fold-const.c fold-const.c (fold_binary_loc): Move Optimize root(x)*root(y) as root(x*y) to match.pd. 2015-08-26 03:39:17 +00:00
fold-const.h
fp-test.c
function.c [PR64164] fix regressions reported on m68k and armeb 2015-08-19 17:00:32 +00:00
function.h
fwprop.c
gcc-ar.c
gcc-main.c Support embedding the driver in-process within libgccjit 2015-08-25 20:25:05 +00:00
gcc-plugin.h
gcc-symtab.h
gcc.c Fix build for targets not defining EXTRA_SPECS. 2015-08-25 22:20:49 +01:00
gcc.h Support embedding the driver in-process within libgccjit 2015-08-25 20:25:05 +00:00
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 remove more useless typedefs 2015-08-19 02:48:48 +00:00
gcse.c
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c gensupport.h (get_num_insn_codes): Declare. 2015-08-05 15:44:23 +00:00
genautomata.c
gencheck.c
genchecksum.c
gencodes.c gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one. 2015-08-21 17:23:10 +00:00
genconditions.c gensupport.h (get_c_test): Declare. 2015-08-05 15:46:02 +00:00
genconfig.c always define HAVE_peephole2 2015-08-21 01:15:15 +00:00
genconstants.c
genemit.c genemit.c (print_code, [...]): Remove declarations. 2015-07-20 15:57:19 +00:00
genenums.c
generic-match-head.c generic-match-head.c: Include cgraph.h. 2015-07-23 14:31:44 +00:00
generic-match.h
genextract.c
genflags.c genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
gengenrtl.c
gengtype-lex.l
gengtype-parse.c
gengtype-state.c
gengtype.c
gengtype.h
genhooks.c
genmatch.c re PR tree-optimization/67306 (Patterns ICEs when moved using "simplify and match") 2015-08-25 10:29:09 +00:00
genmddeps.c
genmddump.c
genmodes.c genmodes.c (emit_mode_unit_size_inline): New function. 2015-08-19 15:23:11 +00:00
genmultilib
genopinit.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
genoutput.c gensupport.c (sequence_num): Replace with... 2015-08-05 15:47:31 +00:00
genpeep.c
genpreds.c
genrecog.c gensupport.h (get_c_test): Declare. 2015-08-05 15:46:02 +00:00
gensupport.c genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
gensupport.h genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
gentarget-def.c genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
ggc.h
gimple-builder.c
gimple-builder.h
gimple-expr.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
gimple-expr.h [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
gimple-fold.c re PR middle-end/67285 (ICE with (rdiv (POW:s @0 REAL_CST@1) @0)) 2015-08-21 08:06:20 +00:00
gimple-fold.h
gimple-iterator.c
gimple-iterator.h
gimple-laddress.c
gimple-low.c re PR middle-end/67222 (ICE in gimple_call_arg with bogus posix_memalign) 2015-08-18 13:41:27 +00:00
gimple-low.h
gimple-match-head.c re PR middle-end/67285 (ICE with (rdiv (POW:s @0 REAL_CST@1) @0)) 2015-08-21 08:06:20 +00:00
gimple-match.h
gimple-predict.h
gimple-pretty-print.c
gimple-pretty-print.h
gimple-ssa-isolate-paths.c re PR middle-end/67133 (ICE at -Os and above on x86_64-linux-gnu in gimple_op, at gimple.h:2274) 2015-08-19 14:22:26 +00:00
gimple-ssa-strength-reduction.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple-walk.c
gimple-walk.h
gimple.c re PR middle-end/67133 (ICE at -Os and above on x86_64-linux-gnu in gimple_op, at gimple.h:2274) 2015-08-14 16:29:38 +00:00
gimple.def
gimple.h gimple.h (gcall::code_): New constant static member. 2015-08-13 06:59:25 +00:00
gimplify-me.c
gimplify-me.h
gimplify.c gimplify.c (omp_default_clause): New function. 2015-07-24 16:13:04 +00:00
gimplify.h
glimits.h
godump.c
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c configure.ac: Add check for new options in isl-0.15. 2015-07-21 12:33:35 -06:00
graphite-isl-ast-to-gimple.c remove -floop-unroll-and-jam 2015-08-27 19:06:56 +00:00
graphite-isl-ast-to-gimple.h
graphite-optimize-isl.c remove -floop-* flags 2015-08-27 19:07:04 +00:00
graphite-poly.c remove -floop-* flags 2015-08-27 19:07:04 +00:00
graphite-poly.h remove -floop-* flags 2015-08-27 19:07:04 +00:00
graphite-scop-detection.c Constrain only on INTEGER_TYPE 2015-08-24 20:50:12 +00:00
graphite-scop-detection.h
graphite-sese-to-poly.c remove -floop-* flags 2015-08-27 19:07:04 +00:00
graphite-sese-to-poly.h
graphite.c remove -floop-* flags 2015-08-27 19:07:04 +00:00
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c remove useless typedefs 2015-08-19 02:48:16 +00:00
hard-reg-set.h
hash-map-traits.h
hash-map.h
hash-set.h
hash-table.c
hash-table.h
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 Avoid signed left shift undefined behaviour in sext_hwi 2015-08-19 13:42:36 +00:00
ifcvt.c ifcvt.c (HAVE_incscc, [...]): Delete. 2015-08-24 17:59:31 +00:00
ifcvt.h
inchash.c
inchash.h
incpath.c
incpath.h
init-regs.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
input.c
input.h
insn-addr.h
insn-notes.def
internal-fn.c
internal-fn.def
internal-fn.h
intl.c
intl.h
ipa-chkp.c
ipa-chkp.h
ipa-comdats.c
ipa-cp.c
ipa-devirt.c remove useless typedefs 2015-08-19 02:48:16 +00:00
ipa-icf-gimple.c
ipa-icf-gimple.h
ipa-icf.c
ipa-icf.h
ipa-inline-analysis.c re PR ipa/66566 ([CHKP] ICE in early_inliner: internal compiler error: in operator[], at vec.h:714) 2015-07-24 13:15:49 +00:00
ipa-inline-transform.c
ipa-inline.c
ipa-inline.h
ipa-polymorphic-call.c
ipa-profile.c
ipa-prop.c
ipa-prop.h
ipa-pure-const.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c remove useless typedefs 2015-08-19 02:48:16 +00:00
ipa-utils.c
ipa-utils.h
ipa-visibility.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
ipa.c ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P. 2015-08-27 08:02:57 +00:00
ira-build.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira-color.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira-conflicts.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira-costs.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira-emit.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira-int.h ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira-lives.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
ira.h Add alternative_mask to ira_implicitly_set_insn_hard_regs 2015-08-07 09:18:09 -07:00
is-a.h
jump.c
langhooks-def.h
langhooks.c
langhooks.h
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 re PR debug/67043 (-fcompare-debug failure with -O3) 2015-08-04 02:11:58 +00:00
loop-iv.c Fix PR61657 (undefined behavior in loop-iv.c) 2015-08-21 16:44:30 +00:00
loop-unroll.c
loop-unroll.h
lower-subreg.c
lower-subreg.h
lra-assigns.c
lra-coalesce.c
lra-constraints.c
lra-eliminations.c [obvious] Use std::swap instead of manually swapping in a few more places 2015-07-24 16:46:04 +00:00
lra-int.h
lra-lives.c
lra-remat.c re PR ipa/66424 (wrong code at -O2 and -O3 on x86_64-linux-gnu in 32-bit mode) 2015-07-21 19:54:23 +00:00
lra-spills.c
lra.c gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one. 2015-08-21 17:23:10 +00:00
lra.h
lto-cgraph.c
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 Fix offloading machine mode stream reading 2015-08-10 17:22:30 +02:00
lto-streamer-out.c Fix offloading machine mode stream reading 2015-08-10 17:22:30 +02:00
lto-streamer.c
lto-streamer.h
lto-wrapper.c
machmode.def
machmode.h genmodes.c (emit_mode_unit_size_inline): New function. 2015-08-19 15:23:11 +00:00
main.c Refactoring of timevar API 2015-08-03 20:14:21 +00:00
match.pd fold-const.c (fold_binary_loc): Move Optimize root(x)*root(y) as root(x*y) to match.pd. 2015-08-26 03:39:17 +00:00
mcf.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
mem-stats-traits.h
mem-stats.h
mkconfig.sh
mode-classes.def
mode-switching.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
modulo-sched.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
omp-builtins.def
omp-low.c Optimize expand_omp_for_static_chunk for chunk_size one 2015-08-24 13:14:17 +00:00
omp-low.h
opt-functions.awk options.texi (EnabledBy): Document that the argument must be a Common option. 2015-08-09 19:30:17 +00:00
opt-gather.awk
opt-include.awk
opt-read.awk
optabs.c optabs.c (emit_indirect_jump): Don't try an emit a jump if the target doesn't have one. 2015-08-25 19:43:02 +00:00
optabs.def
optabs.h
optc-gen.awk options.texi (EnabledBy): Document that the argument must be a Common option. 2015-08-09 19:30:17 +00:00
optc-save-gen.awk
opth-gen.awk
opts-common.c Honour DriverOnly for enum values in error messages 2015-07-28 05:51:01 +00:00
opts-diagnostic.h
opts-global.c
opts.c common.opt (fstack-protector): Initialize to -1. 2015-08-19 16:07:06 -06:00
opts.h
output.h
params.c
params.def remove -floop-unroll-and-jam 2015-08-27 19:06:56 +00:00
params.h
pass_manager.h
passes.c passes.c (rest_of_decl_compilation): Guard early_global_decl call with !seen_error (). 2015-08-27 13:27:02 +00:00
passes.def [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
plugin.c
plugin.def
plugin.h
postreload-gcse.c
postreload.c
predict.c
predict.def
predict.h
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl.c fix -fdump-unnumbered-links 2015-08-21 20:03:33 +00:00
print-rtl.h
print-tree.c * print-tree.c (print_node): Handle TREE_BINFO. 2015-08-18 17:29:12 -04:00
print-tree.h
profile.c
profile.h
read-md.c
read-md.h
read-rtl.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
real.c
real.h
realmpfr.c
realmpfr.h
recog.c gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one. 2015-08-21 17:23:10 +00:00
recog.h gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one. 2015-08-21 17:23:10 +00:00
ree.c remove useless typedefs 2015-08-19 02:48:16 +00:00
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 re PR middle-end/55035 (reload1.c:3766:41: error: ‘orig_dup[0]’ may be used uninitialized in this function (for fr30, microblaze, moxie, rl78)) 2015-08-13 20:22:34 +00:00
reorg.c remove another #if for HAVE_cc0 2015-08-21 01:14:59 +00:00
resource.c
resource.h
rtl-chkp.c
rtl-chkp.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl.c rtl.h (rtvec_all_equal_p): Declare. 2015-08-20 19:04:34 +00:00
rtl.def
rtl.h rtl.h (rtvec_all_equal_p): Declare. 2015-08-20 19:04:34 +00:00
rtlanal.c arm.c (neon_element_bits, [...]): Call GET_MODE_INNER unconditionally. 2015-07-28 20:31:17 +00:00
rtlhash.c
rtlhash.h
rtlhooks-def.h
rtlhooks.c
sanitizer.def sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG, [...]): Fix builtin types. 2015-08-21 08:42:57 +00:00
sanopt.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
sbitmap.c
sbitmap.h
sched-deps.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
sched-ebb.c
sched-int.h
sched-rgn.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
sched-vis.c
sdbout.c
sdbout.h
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c
sel-sched-ir.h
sel-sched.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
sel-sched.h
sese.c
sese.h
shrink-wrap.c
shrink-wrap.h
signop.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
simplify-rtx.c re PR rtl-optimization/67218 (Combine incorrectly folds (double) (float) (unsigned)) 2015-08-18 19:04:41 +00:00
sparseset.c
sparseset.h
sreal.c
sreal.h
ssa-iterators.h ssa-iterators.h (has_zero_uses, [...]): Implement as straight loops. 2015-07-21 19:15:13 +00:00
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c remove useless typedefs 2015-08-19 02:48:16 +00:00
stmt.h
stor-layout.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
stor-layout.h
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
symbol-summary.h
symtab.c
sync-builtins.def
system.h
target-def.h
target-globals.c ira-int.h: Include recog.h. 2015-08-13 21:39:03 +00:00
target-globals.h
target-hooks-macros.h
target-insns.def genflags.c (gen_macro): Delete. 2015-08-24 17:59:51 +00:00
target.def
target.h
targhooks.c always define HAVE_conditional_execution 2015-08-21 01:14:46 +00:00
targhooks.h
timevar.c Refactoring of timevar API 2015-08-03 20:14:21 +00:00
timevar.def Refactoring of timevar API 2015-08-03 20:14:21 +00:00
timevar.h Refactoring of timevar API 2015-08-03 20:14:21 +00:00
tlink.c
toplev.c fix compile without ISL 2015-08-27 21:59:06 +00:00
toplev.h Refactoring of timevar API 2015-08-03 20:14:21 +00:00
tracer.c
trans-mem.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
trans-mem.h
tree-affine.c
tree-affine.h
tree-call-cdce.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-cfg.c Don't create superfluous parm in expand_omp_taskreg 2015-08-23 09:19:32 +00:00
tree-cfg.h Don't create superfluous parm in expand_omp_taskreg 2015-08-23 09:19:32 +00:00
tree-cfgcleanup.c
tree-cfgcleanup.h
tree-chkp-opt.c
tree-chkp.c
tree-chkp.h
tree-chrec.c
tree-chrec.h
tree-complex.c
tree-core.h * tree-core.h (tree_base): Fix typo. 2015-08-14 17:59:41 +00:00
tree-data-ref.c remove useless typedefs 2015-08-19 02:48:16 +00:00
tree-data-ref.h fix pr46851 and pr60340: remove unmaintained omega dependence test 2015-07-18 01:11:05 +00:00
tree-dfa.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-dfa.h
tree-diagnostic.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-eh.h
tree-emutls.c
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-inline.c gimple-fold.c (fold_gimple_cond): Do not require folding results to pass valid_gimple_rhs_p. 2015-07-23 13:33:43 +00:00
tree-inline.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-into-ssa.c
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c
tree-nested.c
tree-nested.h
tree-nrv.c
tree-object-size.c
tree-object-size.h
tree-outof-ssa.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
tree-outof-ssa.h
tree-parloops.c Don't cancel loop tree in parloops 2015-07-31 06:26:44 +00:00
tree-parloops.h
tree-pass.h tree-pass.h (get_current_pass_name): Removed. 2015-07-23 19:01:03 +00:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c
tree-pretty-print.c
tree-pretty-print.h
tree-profile.c
tree-scalar-evolution.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-scalar-evolution.h
tree-sra.c completely_scalarize arrays as well as records 2015-08-27 15:40:10 +00:00
tree-ssa-address.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa-address.h
tree-ssa-alias.c re PR middle-end/67222 (ICE in gimple_call_arg with bogus posix_memalign) 2015-08-18 13:41:27 +00:00
tree-ssa-alias.h
tree-ssa-ccp.c re PR tree-optimization/67055 (Segmentation fault in fold_builtin_alloca_with_align in tree-ssa-ccp.c) 2015-08-05 10:01:12 +00:00
tree-ssa-coalesce.c [PR64164] fix regressions reported on m68k and armeb 2015-08-19 17:00:32 +00:00
tree-ssa-coalesce.h [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
tree-ssa-copy.c
tree-ssa-dce.c re PR middle-end/67005 (ICE: in verify_loop_structure, at cfgloop.c:1647 (loop with header n not in loop tree)) 2015-08-27 17:07:35 +00:00
tree-ssa-dom.c remove useless typedefs 2015-08-19 02:48:16 +00:00
tree-ssa-dom.h
tree-ssa-dse.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-ssa-forwprop.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-ssa-ifcombine.c re PR tree-optimization/66952 (wrong code at -O2 and -O3 on x86_64-linux-gnu) 2015-07-22 11:31:50 +00:00
tree-ssa-live.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
tree-ssa-live.h [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
tree-ssa-loop-ch.c
tree-ssa-loop-im.c
tree-ssa-loop-ivcanon.c
tree-ssa-loop-ivopts.c remove useless typedefs 2015-08-19 02:48:16 +00:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break loop if EXPR is simplified to const value. 2015-08-21 10:09:48 +00:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c
tree-ssa-loop-unswitch.c
tree-ssa-loop.c fix pr46851 and pr60340: remove unmaintained omega dependence test 2015-07-18 01:11:05 +00:00
tree-ssa-loop.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa-math-opts.c re PR tree-optimization/66828 (gcc/tree-ssa-math-opts.c:2182:38: runtime error: left shift of 72057594037927936 by 8 places cannot be represented in type 'long int') 2015-07-28 06:54:50 +00:00
tree-ssa-operands.c ssa-iterators.h (has_zero_uses, [...]): Implement as straight loops. 2015-07-21 19:15:13 +00:00
tree-ssa-operands.h
tree-ssa-phiopt.c tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if we're not the only contributor to target phi. 2015-08-11 12:34:06 +00:00
tree-ssa-phiprop.c
tree-ssa-pre.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa-propagate.c re PR middle-end/66945 (ICE in generic_simplify (generic-match.c:24790)) 2015-07-23 07:23:23 +00:00
tree-ssa-propagate.h
tree-ssa-reassoc.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa-sccvn.c re PR tree-optimization/67221 (ICE at -Os and above on x86_64-linux-gnu: Segmentation fault (program cc1)) 2015-08-17 14:17:33 +00:00
tree-ssa-sccvn.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa-scopedtables.c
tree-ssa-scopedtables.h
tree-ssa-sink.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-ssa-strlen.c
tree-ssa-structalias.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa-tail-merge.c
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadedge.c revert: re PR lto/66752 (spec2000 255.vortex performance compiled with GCC is ~20% lower than with CLANG) 2015-07-24 23:45:42 -06:00
tree-ssa-threadedge.h
tree-ssa-threadupdate.c re PR middle-end/66314 (ice in verify_loop_structure) 2015-08-03 10:26:13 -06:00
tree-ssa-threadupdate.h
tree-ssa-uncprop.c [PR64164] Drop copyrename, use coalescible partition as base when optimizing. 2015-08-14 18:51:50 +00:00
tree-ssa-uninit.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssa.c
tree-ssa.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-ssanames.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-ssanames.h re PR tree-optimization/66952 (wrong code at -O2 and -O3 on x86_64-linux-gnu) 2015-07-22 11:31:50 +00:00
tree-stdarg.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-stdarg.h
tree-streamer-in.c
tree-streamer-out.c
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c
tree-tailcall.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-vect-data-refs.c re PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in vect_analyze_slp_instance, at tree-vect-slp.c:1793) 2015-08-05 07:48:34 +00:00
tree-vect-generic.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
tree-vect-loop-manip.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-vect-loop.c Allow non-overflow ops in reductions 2015-08-01 08:29:29 +00:00
tree-vect-patterns.c arm.c (neon_element_bits): Replace call to GET_MODE_BITSIZE (GET_MODE_INNER (m)) with... 2015-08-17 11:06:34 +00:00
tree-vect-slp.c fix pr46851 and pr60340: remove unmaintained omega dependence test 2015-07-18 01:11:05 +00:00
tree-vect-stmts.c gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one. 2015-08-21 17:23:10 +00:00
tree-vectorizer.c
tree-vectorizer.h remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree-vrp.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
tree.c tree.c (nonnull_arg_p): Move from ... 2015-08-13 12:34:36 +00:00
tree.def
tree.h tree.c (nonnull_arg_p): Move from ... 2015-08-13 12:34:36 +00:00
treestruct.def
tsan.c
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.h
ubsan.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
ubsan.h
valtrack.c
valtrack.h
value-prof.c value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument and get builtin function code directly from CALL. 2015-08-21 14:34:52 +00:00
value-prof.h
var-tracking.c remove more useless typedefs 2015-08-19 02:48:48 +00:00
varasm.c re PR middle-end/67330 (ICE handling weak attributes) 2015-08-25 20:28:59 +00:00
varasm.h
varpool.c toplev.c (compile_file): Remove loop calling late_global_decl on all symbols. 2015-08-20 11:02:30 +00:00
vec.c
vec.h
version.c
version.h
vmsdbg.h
vmsdbgout.c fix compilation of vmsdbgout.c 2015-07-18 21:09:04 +00:00
vtable-verify.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
vtable-verify.h re PR bootstrap/66521 (xgcc: cc1plus segfaults when compiling libstdc++-v3/src/c++11/ostream-inst.cc) 2015-08-01 18:17:39 -07:00
web.c Revert "replace several uses of the anon namespace with GCC_FINAL" 2015-08-12 20:09:33 +00:00
wide-int-print.cc
wide-int-print.h
wide-int.cc re PR middle-end/66311 (Problems with some integer(16) values) 2015-08-05 14:23:42 +00:00
wide-int.h Fix partial specialization syntax of wide int traits. 2015-07-20 05:30:12 +00:00
xcoff.h
xcoffout.c
xcoffout.h

README.Portability

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

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

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

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

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


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

Irix6 "cc -n32" and OSF4 "cc" have problems with constant string
initializers with parens around it, e.g.

const char string[] = ("A string");

This is unfortunate since this is what the GNU gettext macro N_
produces.  You need to find a different way to code it.

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


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

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

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

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

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

needs to be coded in some other way.


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

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

  if (P)
    free (P);

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

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

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



Trigraphs
---------

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


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

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


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

errno
-----

errno might be declared as a macro.


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

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

  unsigned variable;

as shorthand for

  unsigned int variable;

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

  (unsigned) variable

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

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

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

o Passing incorrect types to fprintf and friends.

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