platform/upstream/gcc.git
9 years agoutils.c (create_subprog_decl): Move code dealing with conflicting inlining status...
Eric Botcazou [Wed, 5 Nov 2014 18:47:04 +0000 (18:47 +0000)]
utils.c (create_subprog_decl): Move code dealing with conflicting inlining status of nested subprograms to...

* gcc-interface/utils.c (create_subprog_decl): Move code dealing with
conflicting inlining status of nested subprograms to...
* gcc-interface/trans.c (check_inlining_for_nested_subprog): ...here.
(Attribute_to_gnu) <Attr_Access>: Call it.
(Call_to_gnu): Likewise.
(Subprogram_Body_to_gnu): Drop the body if it is an inlined external
function that has been marked uninlinable.

From-SVN: r217151

9 years agore PR driver/36312 (should refuse to overwrite input file with output file)
Anthony Brandon [Wed, 5 Nov 2014 17:23:46 +0000 (17:23 +0000)]
re PR driver/36312 (should refuse to overwrite input file with output file)

gcc/testsuite/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* gcc.misc-tests/output.exp: New test case for identical input and
output files.

include/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* filenames.h: Add prototype for canonical_filename_eq.

gcc/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* diagnostic-core.h: Add prototype for fatal_error.
* diagnostic.c (fatal_error): New function fatal_error.
* gcc.c (store_arg): Remove have_o_argbuf_index.
(process_command): Check if input and output files are the same.
* toplev.c (init_asm_output): Check if input and output files are
the same.

libiberty/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* filename_cmp.c (canonical_filename_eq): New function to check if
file names are the same.
* functions.texi: Updated with documentation for new function.

From-SVN: r217149

9 years agoEnable -fextended-identifiers by default.
Joseph Myers [Wed, 5 Nov 2014 16:19:10 +0000 (16:19 +0000)]
Enable -fextended-identifiers by default.

As proposed at <https://gcc.gnu.org/ml/gcc/2014-11/msg00014.html>,
this patch enables -fextended-identifiers by default for all standard
versions including this feature (all C++ versions, C99 and above for
C, but not C90 / C94 / gnu89 / preprocessing assembler).  It adds a
couple of tests for areas where I previously noted testsuite coverage
for extended identifiers was lacking, removes -fextended-identifiers
from existing tests, adds -g to various such tests to verify that
extended identifiers don't break debug info generation and removes the
test that was only there to verify that the feature was off by
default.

The current state of the feature may not correspond exactly to any
particular checklist from 2004/5 (see bug 9449) of what was wanted
before enabling the feature by default, but I don't think it's any
worse than plenty of other features supported by default before every
corner case is fully functional, and think problems can readily be
fixed incrementally.

The following aspects of extended identifiers could still do with more
work (and should be straightforward):

* C -aux-info (output should use UCNs).

* ObjC -gen-decls (output should use UCNs; associated diagnostics from
  the ObjC front end should use extended characters or UCNs as
  appropriate to the locale, via using %qE or identifier_to_locale).

* Use DW_AT_use_UTF8 in DWARF-3 debug info for compilation units built
  with extended identifiers enabled (or unconditionally).

* cpplib diagnostics (outputting characters or UCNs as appropriate
  depending on the locale, as done for identifiers in non-cpplib
  diagnostics).

* C++ test for UCN linking with C and extern "C".

* Check GDB support / file issues for support if needed.

* Actual UTF-8 in identifiers (?).  (Be careful about not affecting
  performance for the normal fast path of lexing identifiers, if
  possible.)

The following may be trickier:

* cpplib spelling preservation (required to diagnose macro
  redefinition with different spellings of the same identifier in the
  definition or argument names; different spellings of the name of the
  macro itself are OK, however; also required for correct handling of
  multiple stringizing in C++); correct output for -d (UCNs), DWARF
  debug info for macros (UCNs), PCH and PCH tests.  (Spelling
  preservation is the issue that needs fixing to remove references to
  corner cases in the documentation of -std=c99 and -std=c11 and in
  c99status.html.)  The idea would be to add a second pointer to
  cpp_identifier that stores the original spelling (whether for
  extended identifiers only, or for all identifiers); this does not
  enlarge cpp_token because the resulting larger cpp_identifier
  structure is no bigger than cpp_string.

* C++ translation of extended characters (including $@` and various
  control characters) to UCNs in phase 1 (note diagnostics thus
  needed, but not for C++11, for control characters in strings /
  character constants as those UCNs invalid); a likely implementation
  approach is to do translation when identifiers / strings / character
  constants are lexed, together with errors for stray $@` / control
  characters in program as not being valid UCNs in identifiers ($ only
  if not accepted in identifiers); note that this translation should
  not take place inside raw string literals.

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.

libcpp:
PR preprocessor/9449
* init.c (lang_defaults): Enable extended identifiers for C++ and
C99-based standards.

gcc:
PR preprocessor/9449
* doc/cpp.texi (Character sets, Tokenization)
(Implementation-defined behavior): Don't refer to UCNs in
identifiers requiring -fextended-identifiers.
* doc/cppopts.texi (-fextended-identifiers): Document as enabled
by default for C99 and later and C++.
* doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
identifiers needing -fextended-identifiers.

gcc/testsuite:
PR preprocessor/9449
* lib/target-supports.exp (check_effective_target_ucn_nocache):
Don't use -fextended-identifiers.
* c-c++-common/cpp/normalize-3.c, c-c++-common/cpp/ucnid-2011-1.c,
g++.dg/cpp/ucn-1.C, g++.dg/cpp/ucnid-1.C, g++.dg/other/ucnid-1.C,
gcc.dg/cpp/normalize-1.c, gcc.dg/cpp/normalize-2.c,
gcc.dg/cpp/normalize-4.c: Don't use -fextended-identifiers.
* gcc.dg/cpp/ucnid-1.c: Don't use -fextended-identifiers.  Use
-g3.
* gcc.dg/cpp/ucnid-10.c, gcc.dg/cpp/ucnid-2.c,
gcc.dg/cpp/ucnid-3.c, gcc.dg/cpp/ucnid-4.c, gcc.dg/cpp/ucnid-5.c,
gcc.dg/cpp/ucnid-7.c, gcc.dg/cpp/ucnid-9.c,
gcc.dg/cpp/warn-normalized-1.c, gcc.dg/cpp/warn-normalized-2.c,
gcc.dg/cpp/warn-normalized-3.c: Don't use -fextended-identifiers.
* gcc.dg/ucnid-1.c, gcc.dg/ucnid-2.c, gcc.dg/ucnid-3.c,
gcc.dg/ucnid-4.c, gcc.dg/ucnid-5.c, gcc.dg/ucnid-6.c: Don't use
-fextended-identifiers.  Use -g.
* gcc.dg/ucnid-7.c, gcc.dg/ucnid-8.c: Don't use
-fextended-identifiers.
* gcc.dg/ucnid-9.c: Don't use -fextended-identifiers.  Use -g.
* gcc.dg/ucnid-10.c: Don't use -fextended-identifiers.
* gcc.dg/ucnid-11.c, gcc.dg/ucnid-12.c: Don't use
-fextended-identifiers.  Use -g.
* gcc.dg/ucnid-13.c: Don't use -fextended-identifiers.
* gcc.dg/cpp/ucnid-8.c: Remove test.
* gcc.dg/cpp/ucnid-10.c, gcc.dg/ucnid-14.c: New tests.

From-SVN: r217144

9 years agoFix dg.torture tests with avx512
Ilya Tocar [Wed, 5 Nov 2014 15:55:44 +0000 (15:55 +0000)]
Fix dg.torture tests with avx512

gcc/
* config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
for 512-bit wide modes.
(expand_vec_perm_1): Use correct versions of patterns.
* config/i386/sse.md (avx512f_vec_dup_<mode>_1): New.
(vashr<mode>3<mask_name>): Split V8HImode and V16QImode.

From-SVN: r217138

9 years agoadvsimd-intrinsics.exp: Skip tests if target does not support Neon.
Christophe Lyon [Wed, 5 Nov 2014 15:22:28 +0000 (15:22 +0000)]
advsimd-intrinsics.exp: Skip tests if target does not support Neon.

2014-11-05  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
Skip tests if target does not support Neon.

From-SVN: r217134

9 years ago[AArch64,ARM] support bswap tests on aarch64_be.
Christophe Lyon [Wed, 5 Nov 2014 15:19:19 +0000 (15:19 +0000)]
[AArch64,ARM] support bswap tests on aarch64_be.

[AArch64,ARM] support bswap tests on aarch64_be. Skip them on ARM
targets older than v6.

2014-11-05  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/target-supports.exp (check_effective_target_bswap): Update
conditions for AArch64 and ARM targets.

From-SVN: r217133

9 years agopr59166.c: XFAIL on AIX.
David Edelsohn [Wed, 5 Nov 2014 14:32:59 +0000 (14:32 +0000)]
pr59166.c: XFAIL on AIX.

        * gcc.dg/torture/pr59166.c: XFAIL on AIX.
        * g++.dg/ext/visitibility/anon1.C: XFAIL on AIX.
        * g++.dg/opt/pr60002.C: XFAIL on AIX.
        * g++.dg/torture/pr63419.C: Ignore non-standard ABI warning.
        * g++.dg/ipa/ipa-icf-5.C: Require visibility support.

From-SVN: r217129

9 years agoipa-chkp.c: New.
Ilya Enkovich [Wed, 5 Nov 2014 12:42:03 +0000 (12:42 +0000)]
ipa-chkp.c: New.

gcc/

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

* ipa-chkp.c: New.
* ipa-chkp.h: New.
* tree-chkp.c: New.
* tree-chkp.h: New.
* tree-chkp-opt.c: New.
* rtl-chkp.c: New.
* rtl-chkp.h: New.
* Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
tree-chkp-opt.o.
(GTFILES): Add tree-chkp.c.
* mode-classes.def (MODE_POINTER_BOUNDS): New.
* tree.def (POINTER_BOUNDS_TYPE): New.
* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
(POINTER_BOUNDS_MODE): New.
(make_pointer_bounds_mode): New.
* machmode.h (POINTER_BOUNDS_MODE_P): New.
* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
(layout_type): Support POINTER_BOUNDS_TYPE.
* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
(type_contains_placeholder_1): Likewise.
(build_common_tree_nodes): Initialize
pointer_bounds_type_node.
* tree.h (POINTER_BOUNDS_TYPE_P): New.
(pointer_bounds_type_node): New.
(POINTER_BOUNDS_P): New.
(BOUNDED_TYPE_P): New.
(BOUNDED_P): New.
(CALL_WITH_BOUNDS_P): New.
* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
(gimple_call_with_bounds_p): New.
(gimple_call_set_with_bounds): New.
(gimple_return_retbnd): New.
(gimple_return_set_retbnd): New
* gimple.c (gimple_build_return): Increase number of ops
for return statement.
(gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
flag.
* gimple-pretty-print.c (dump_gimple_return): Print second op.
* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
* gimplify.c (gimplify_init_constructor): Avoid infinite
loop during gimplification of bounds initializer.
* calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
(special_function_p): Use original decl name when analyzing
instrumentation clone.
(arg_data): Add fields special_slot, pointer_arg and
pointer_offset.
(store_bounds): New.
(emit_call_1): Propagate instrumentation flag for CALL.
(initialize_argument_information): Compute pointer_arg,
pointer_offset and special_slot for pointer bounds arguments.
(finalize_must_preallocate): Preallocate when storing bounds
in bounds table.
(compute_argument_addresses): Skip pointer bounds.
(expand_call): Store bounds into tables separately.  Return
result joined with resulting bounds.
* cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
(expand_call_stmt): Propagate bounds flag for CALL_EXPR.
(expand_return): Add returned bounds arg.  Handle returned bounds.
(expand_gimple_stmt_1): Adjust to new expand_return signature.
(gimple_expand_cfg): Reset rtx bounds map.
* expr.c: Include tree-chkp.h, rtl-chkp.h.
(expand_assignment): Handle returned bounds.
(store_expr_with_bounds): New.  Replaces store_expr with new bounds
target argument.  Handle bounds returned by calls.
(store_expr): Now wraps store_expr_with_bounds.
* expr.h (store_expr_with_bounds): New.
* function.c: Include tree-chkp.h, rtl-chkp.h.
(bounds_parm_data): New.
(use_register_for_decl): Do not registerize decls used for bounds
stores and loads.
(assign_parms_augmented_arg_list): Add bounds of the result
structure pointer as the second argument.
(assign_parm_find_entry_rtl): Mark bounds are never passed on
the stack.
(assign_parm_is_stack_parm): Likewise.
(assign_parm_load_bounds): New.
(assign_bounds): New.
(assign_parms): Load bounds and determine a location for
returned bounds.
(diddle_return_value_1): New.
(diddle_return_value): Handle returned bounds.
* function.h (rtl_data): Add field for returned bounds.
* varasm.c: Include tree-chkp.h.
(output_constant): Support POINTER_BOUNDS_TYPE.
(output_constant_pool_2): Support MODE_POINTER_BOUNDS.
(ultimate_transparent_alias_target): Move up.
(make_decl_rtl): For instrumented function use
name of the original decl.
(assemble_start_function): Mark function as global
in case it is instrumentation clone of the global
function.
(do_assemble_alias): Follow transparent alias chain
for identifier.  Check if original alias is public.
(maybe_assemble_visibility): Use visibility of the
original function for instrumented version.
(default_unique_section): Likewise.
* emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
(init_emit_once): Build pointer bounds zero constants.
* explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
* target.def (builtin_chkp_function): New.
(chkp_bound_type): New.
(chkp_bound_mode): New.
(chkp_make_bounds_constant): New.
(chkp_initialize_bounds): New.
(load_bounds_for_arg): New.
(store_bounds_for_arg): New.
(load_returned_bounds): New.
(store_returned_bounds): New.
(chkp_function_value_bounds): New.
(setup_incoming_vararg_bounds): New.
(function_arg): Update hook description with new possible return
value CONST_INT.
* targhooks.h (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_load_returned_bounds): New.
(default_store_returned_bounds): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode): New.
(default_builtin_chkp_function): New.
(default_chkp_function_value_bounds): New.
(default_chkp_make_bounds_constant): New.
(default_chkp_initialize_bounds): New.
(default_setup_incoming_vararg_bounds): New.
* targhooks.c (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_load_returned_bounds): New.
(default_store_returned_bounds): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode); New.
(default_builtin_chkp_function): New.
(default_chkp_function_value_bounds): New.
(default_chkp_make_bounds_constant): New.
(default_chkp_initialize_bounds): New.
(default_setup_incoming_vararg_bounds): New.
* builtin-types.def (BT_BND): New.
(BT_FN_PTR_CONST_PTR): New.
(BT_FN_CONST_PTR_CONST_PTR): New.
(BT_FN_BND_CONST_PTR): New.
(BT_FN_CONST_PTR_BND): New.
(BT_FN_PTR_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
(BT_FN_VOID_PTRPTR_CONST_PTR): New.
(BT_FN_VOID_CONST_PTR_SIZE): New.
(BT_FN_VOID_PTR_BND): New.
(BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
(BT_FN_BND_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
* chkp-builtins.def: New.
* builtins.def: include chkp-builtins.def.
(DEF_CHKP_BUILTIN): New.
* builtins.c: Include tree-chkp.h and rtl-chkp.h.
(expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
(std_expand_builtin_va_start): Init bounds for va_list.
* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
__CHKP__ macro when Pointer Bounds Checker is on.
* params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
* passes.def (pass_ipa_chkp_versioning): New.
(pass_early_local_passes): Renamed to pass_build_ssa_passes.
(pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
(pass_chkp_instrumentation_passes): New.
(pass_ipa_chkp_produce_thunks): New.
(pass_local_optimization_passes): New.
(pass_chkp_opt): New.
* tree-pass.h (make_pass_ipa_chkp_versioning): New.
(make_pass_ipa_chkp_produce_thunks): New.
(make_pass_chkp): New.
(make_pass_chkp_opt): New.
(make_pass_early_local_passes): Renamed to ...
(make_pass_build_ssa_passes): This.
(make_pass_chkp_instrumentation_passes): New.
(make_pass_local_optimization_passes): New.
* passes.c (pass_manager::execute_early_local_passes): Execute
early passes in three steps.
(execute_all_early_local_passes): Renamed to ...
(execute_build_ssa_passes): This.
(pass_data_early_local_passes): Renamed to ...
(pass_data_build_ssa_passes): This.
(pass_early_local_passes): Renamed to ...
(pass_build_ssa_passes): This.
(pass_data_chkp_instrumentation_passes): New.
(pass_chkp_instrumentation_passes): New.
(pass_data_local_optimization_passes): New.
(pass_local_optimization_passes): New.
(make_pass_early_local_passes): Renamed to ...
(make_pass_build_ssa_passes): This.
(make_pass_chkp_instrumentation_passes): New.
(make_pass_local_optimization_passes): New.
* c-family/c.opt (fcheck-pointer-bounds): New.
(fchkp-check-incomplete-type): New.
(fchkp-zero-input-bounds-for-main): New.
(fchkp-first-field-has-own-bounds): New.
(fchkp-narrow-bounds): New.
(fchkp-narrow-to-innermost-array): New.
(fchkp-optimize): New.
(fchkp-use-fast-string-functions): New.
(fchkp-use-nochk-string-functions): New.
(fchkp-use-static-bounds): New.
(fchkp-use-static-const-bounds): New.
(fchkp-treat-zero-dynamic-size-as-infinite): New.
(fchkp-check-read): New.
(fchkp-check-write): New.
(fchkp-store-bounds): New.
(fchkp-instrument-calls): New.
(fchkp-instrument-marked-only): New.
(Wchkp): New.
* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
(handle_bnd_legacy): New.
(handle_bnd_instrument): New.
(c_common_attribute_table): Add bnd_variable_size, bnd_legacy
and bnd_instrument.  Fix documentation.
(c_common_format_attribute_table): Likewsie.
* toplev.c: include tree-chkp.h.
(process_options): Check Pointer Bounds Checker is supported.
(compile_file): Add chkp_finish_file call.
* ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
to handle instrumentation clones properly.
(propagate_constants_accross_call): Do not propagate
through instrumentation thunks.
* ipa-pure-const.c (propagate_pure_const): Support
IPA_REF_CHKP.
* ipa-inline.c (early_inliner): Check edge has summary allocated.
* ipa-split.c: Include tree-chkp.h.
(find_retbnd): New.
(split_part_set_ssa_name_p): New.
(consider_split): Do not split retbnd and retval
producers.
(insert_bndret_call_after): new.
(split_function): Propagate Pointer Bounds Checker
instrumentation marks and handle returned bounds.
* tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
into bit field and add with_bounds field.
* tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
with_bounds field for instrumented calls.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
CALL_WITH_BOUNDS_P flag for calls.
* tree-ssa-ccp.c: Include tree-chkp.h.
(insert_clobber_before_stack_restore): Handle
BUILT_IN_CHKP_BNDRET calls.
* tree-ssa-dce.c: Include tree-chkp.h.
(propagate_necessity): For free call fed by alloc check
bounds are also provided by the same alloc.
(eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
used by free calls.
* tree-inline.c: Include tree-chkp.h.
(declare_return_variable): Add arg holding
returned bounds slot.  Create and initialize returned bounds var.
(remap_gimple_stmt): Handle returned bounds.
Return sequence of statements instead of a single statement.
(insert_init_stmt): Add declaration.
(remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
(copy_bb): Adjust to changed return type of remap_gimple_stmt.
Properly handle bounds in va_arg_pack and va_arg_pack_len.
(expand_call_inline): Handle returned bounds.  Add bounds copy
for generated mem to mem assignments.
* tree-inline.h (copy_body_data): Add fields retbnd and
assign_stmts.
* value-prof.c: Include tree-chkp.h.
(gimple_ic): Support returned bounds.
* ipa.c (cgraph_build_static_cdtor_1): Support contructors
with "chkp ctor" and "bnd_legacy" attributes.
(symtab_remove_unreachable_nodes): Keep initial values for
pointer bounds to be used for checks eliminations.
(process_references): Handle IPA_REF_CHKP.
(walk_polymorphic_call_targets): Likewise.
* ipa-visibility.c (cgraph_externally_visible_p): Mark
instrumented 'main' as externally visible.
(function_and_variable_visibility): Filter instrumentation
thunks.
* cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
field.
(cgraph_node): Add instrumented_version, orig_decl and
instrumentation_clone fields.
(symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
(varpool_node): Add need_bounds_init field.
(cgraph_local_p): New.
* cgraph.c: Include tree-chkp.h.
(cgraph_node::remove): Fix instrumented_version
of the referenced node if any.
(cgraph_node::dump): Dump instrumentation_clone and
instrumented_version fields.
(cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
references and instrumentation thunks.
(cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
all not instrumented instrumentation clones alive.
(cgraph_redirect_edge_call_stmt_to_callee): Support
returned bounds.
* cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
reference.
(cgraph_rebuild_references): Likewise.
* cgraphunit.c: Include tree-chkp.h.
(assemble_thunks_and_aliases): Skip thunks calling instrumneted
function version.
(varpool_finalize_decl): Register statically initialized decls
in Pointer Bounds Checker.
(walk_polymorphic_call_targets): Do not mark generated call to
__builtin_unreachable as with_bounds.
(output_weakrefs): If there are both instrumented and original
versions, output only one of them.
(cgraph_node::expand_thunk): Set with_bounds flag
for created call statement.
* ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
(ipa_ref): increase size of use field.
* symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
* varpool.c (dump_varpool_node): Dump need_bounds_init field.
(ctor_for_folding): Do not fold constant bounds vars.
* lto-streamer.h (LTO_minor_version): Change minor version from
0 to 1.
* lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
pointer bounds.
(lto_output_node): Output instrumentation_clone,
thunk.add_pointer_bounds_args and orig_decl field.
(lto_output_ref): Adjust to new ipa_ref::use field size.
(input_overwrite_node): Read instrumentation_clone field.
(input_node): Read thunk.add_pointer_bounds_args and orig_decl
fields.
(input_ref): Adjust to new ipa_ref::use field size.
(input_cgraph_1): Compute instrumented_version fields and restore
IDENTIFIER_TRANSPARENT_ALIAS chains.
(lto_output_varpool_node): Output
need_bounds_init value.
(input_varpool_node): Read need_bounds_init value.
* lto-partition.c (add_symbol_to_partition_1): Keep original
and instrumented versions together.
(privatize_symbol_name): Restore transparent alias chain if required.
(add_references_to_partition): Add references to pointer bounds vars.
* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
* dwarf2out.c (gen_subprogram_die): Ignore bound args.
(gen_type_die_with_usage): Skip pointer bounds.
(dwarf2out_global_decl): Likewise.
(is_base_type): Support POINTER_BOUNDS_TYPE.
(gen_formal_types_die): Skip pointer bounds.
(gen_decl_die): Likewise.
* var-tracking.c (vt_add_function_parameters): Skip
bounds parameters.
* ipa-icf.c (sem_function::merge): Do not merge when instrumentation
thunk still exists.
(sem_variable::merge): Reset need_bounds_init flag.
* doc/extend.texi: Document Pointer Bounds Checker built-in functions
and attributes.
* doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_LOAD_RETURNED_BOUNDS): New.
(TARGET_STORE_RETURNED_BOUNDS): New.
(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_BOUND_TYPE): New.
(TARGET_CHKP_BOUND_MODE): New.
(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
(TARGET_CHKP_INITIALIZE_BOUNDS): New.
* doc/tm.texi: Regenerated.
* doc/rtl.texi (MODE_POINTER_BOUNDS): New.
(BND32mode): New.
(BND64mode): New.
* doc/invoke.texi (-mmpx): New.
(-mno-mpx): New.
(chkp-max-ctor-size): New.
* config/i386/constraints.md (w): New.
(Ti): New.
(Tb): New.
* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
* config/i386/i386-modes.def (BND32): New.
(BND64): New.
* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
* config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
(regclass_map): Add bound registers.
(dbx_register_map): Likewise.
(dbx64_register_map): Likewise.
(svr4_dbx_register_map): Likewise.
(isa_opts): Add -mmpx.
(PTA_MPX): New.
(ix86_option_override_internal): Support MPX ISA.
(ix86_conditional_register_usage): Support bound registers.
(ix86_code_end): Add MPX bnd prefix.
(output_set_got): Likewise.
(print_reg): Avoid prefixes for bound registers.
(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
(ix86_print_operand_punct_valid_p): Likewise.
(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
UNSPEC_BNDLDX_ADDR.
(ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
(ix86_class_likely_spilled_p): Add bound regs support.
(ix86_hard_regno_mode_ok): Likewise.
(x86_order_regs_for_local_alloc): Likewise.
(ix86_bnd_prefixed_insn_p): New.
(ix86_builtins): Add
IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
IX86_BUILTIN_BNDUPPER.
(builtin_isa): Add leaf_p and nothrow_p fields.
(def_builtin): Initialize leaf_p and nothrow_p.
(ix86_add_new_builtins): Handle leaf_p and nothrow_p
flags.
(bdesc_mpx): New.
(bdesc_mpx_const): New.
(ix86_init_mpx_builtins): New.
(ix86_init_builtins): Call ix86_init_mpx_builtins.
(ix86_emit_cmove): New.
(ix86_emit_move_max): New.
(ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
(ix86_function_value_bounds): New.
(ix86_builtin_mpx_function): New.
(ix86_get_arg_address_for_bt): New.
(ix86_load_bounds): New.
(ix86_store_bounds): New.
(ix86_load_returned_bounds): New.
(ix86_store_returned_bounds): New.
(ix86_mpx_bound_mode): New.
(ix86_make_bounds_constant): New.
(ix86_initialize_bounds):
(TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_LOAD_RETURNED_BOUNDS): New.
(TARGET_STORE_RETURNED_BOUNDS): New.
(TARGET_CHKP_BOUND_MODE): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
(TARGET_CHKP_INITIALIZE_BOUNDS): New.
(ix86_option_override_internal): Do not
support x32 with MPX.
(init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
and force_bnd_pass.
(function_arg_advance_32): Return number of used integer
registers.
(function_arg_advance_64): Likewise.
(function_arg_advance_ms_64): Likewise.
(ix86_function_arg_advance): Handle pointer bounds.
(ix86_function_arg): Likewise.
(ix86_function_value_regno_p): Mark fisrt bounds registers as
possible function value.
(ix86_function_value_1): Handle pointer bounds type/mode
(ix86_return_in_memory): Likewise.
(ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
(ix86_expand_call): Generate returned bounds.
(ix86_setup_incoming_vararg_bounds): New.
(ix86_va_start): Initialize bounds for pointers in va_list.
(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
* config/i386/i386.h (TARGET_MPX): New.
(TARGET_MPX_P): New.
(FIRST_PSEUDO_REGISTER): Fix to new value.
(FIXED_REGISTERS): Add bound registers.
(CALL_USED_REGISTERS): Likewise.
(REG_ALLOC_ORDER): Likewise.
(HARD_REGNO_NREGS): Likewise.
(VALID_BND_REG_MODE): New.
(FIRST_BND_REG): New.
(LAST_BND_REG): New.
(reg_class): Add BND_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(BND_REGNO_P): New.
(ANY_BND_REG_P): New.
(BNDmode): New.
(HI_REGISTER_NAMES): Add bound registers.
(ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
stdarg fields.
* config/i386/i386.md (UNSPEC_BNDMK): New.
(UNSPEC_BNDMK_ADDR): New.
(UNSPEC_BNDSTX): New.
(UNSPEC_BNDLDX): New.
(UNSPEC_BNDLDX_ADDR): New.
(UNSPEC_BNDCL): New.
(UNSPEC_BNDCU): New.
(UNSPEC_BNDCN): New.
(UNSPEC_MPX_FENCE): New.
(UNSPEC_SIZEOF): New.
(BND0_REG): New.
(BND1_REG): New.
(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(prefix_rep): Check for bnd prefix.
(prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_nobnd): New.
(length): Use length_nobnd when specified.
(memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(BND): New.
(bnd_ptr): New.
(BNDCHECK): New.
(bndcheck): New.
(*jcc_1): Add MPX bnd prefix.
(*jcc_2): Likewise.
(jump): Likewise.
(*indirect_jump): Likewise.
(*tablejump_1): Likewise.
(simple_return_internal): Likewise.
(simple_return_internal_long): Likewise.
(simple_return_pop_internal): Likewise.
(simple_return_indirect_internal): Likewise.
(<mode>_mk): New.
(*<mode>_mk): New.
(mov<mode>): New.
(*mov<mode>_internal_mpx): New.
(<mode>_<bndcheck>): New.
(*<mode>_<bndcheck>): New.
(<mode>_ldx): New.
(*<mode>_ldx): New.
(<mode>_stx): New.
(*<mode>_stx): New.
move_size_reloc_<mode>): New.
* config/i386/predicates.md (address_mpx_no_base_operand): New.
(address_mpx_no_index_operand): New.
(bnd_mem_operator): New.
(symbol_operand): New.
(x86_64_immediate_size_operand): New.
* config/i386/i386.opt (mmpx): New.
* config/i386/i386-builtin-types.def (BND): New.
(ULONG): New.
(BND_FTYPE_PCVOID_ULONG): New.
(VOID_FTYPE_BND_PCVOID): New.
(VOID_FTYPE_PCVOID_PCVOID_BND): New.
(BND_FTYPE_PCVOID_PCVOID): New.
(BND_FTYPE_PCVOID): New.
(BND_FTYPE_BND_BND): New.
(PVOID_FTYPE_PVOID_PVOID_ULONG): New.
(PVOID_FTYPE_PCVOID_BND_ULONG): New.
(ULONG_FTYPE_VOID): New.
(PVOID_FTYPE_BND): New.

gcc/testsuite/

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

* gcc.target/i386/chkp-builtins-1.c: New.
* gcc.target/i386/chkp-builtins-2.c: New.
* gcc.target/i386/chkp-builtins-3.c: New.
* gcc.target/i386/chkp-builtins-4.c: New.
* gcc.target/i386/chkp-remove-bndint-1.c: New.
* gcc.target/i386/chkp-remove-bndint-2.c: New.
* gcc.target/i386/chkp-const-check-1.c: New.
* gcc.target/i386/chkp-const-check-2.c: New.
* gcc.target/i386/chkp-lifetime-1.c: New.
* gcc.dg/pr37858.c: Replace early_local_cleanups pass name
with build_ssa_passes.

From-SVN: r217125

9 years agoReorganize post-ra pipeline for targets without register allocation.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:45 +0000 (12:14 +0000)]
Reorganize post-ra pipeline for targets without register allocation.

* passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
pass_cleanup_barriers, pass_delay_slots,
pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
pass_shorten_branches, pass_est_nothrow_function_flags,
pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
into pass_late_compilation.
(pass_late_compilation): Add.
* passes.c (pass_data_late_compilation, pass_late_compilation,
make_pass_late_compilation): New.
* timevar.def (TV_LATE_COMPILATION): New.

From-SVN: r217124

9 years agoAllow a target to skip an unnecssary register return value for a struct return.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:36 +0000 (12:14 +0000)]
Allow a target to skip an unnecssary register return value for a struct return.

* target.def (omit_struct_return_reg): New data hook.
* doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
* doc/tm.texi: Regenerate.
* function.c (expand_function_end): Use it.

From-SVN: r217123

9 years agoAdd a no_register_allocation target hook.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:27 +0000 (12:14 +0000)]
Add a no_register_allocation target hook.

* target.def (no_register_allocation): New data hook.
* doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
* doc/tm.texi: Regenerate.
* ira.c (gate_ira): New function.
(pass_data_ira): Set has_gate.
(pass_ira): Add a gate function.
(pass_data_reload): Likewise.
(pass_reload): Add a gate function.
(pass_ira): Use it.
* reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
no register allocation happens on the target and return.
* final.c (alter_subreg): Ensure register is not a pseudo before
calling simplify_subreg.
(output_operand): Assert that x isn't a pseudo only if doing
register allocation.

From-SVN: r217122

9 years agoDon't unnecessarily call eliminate_regs.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:18 +0000 (12:14 +0000)]
Don't unnecessarily call eliminate_regs.

* dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
global vars.

From-SVN: r217121

9 years agoAllow a port not to define an indirect_jump pattern.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:10 +0000 (12:14 +0000)]
Allow a port not to define an indirect_jump pattern.

* optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
sorry if necessary.

From-SVN: r217120

9 years agosimplify-rtx.c (simplify_binary_operation_1): Div check added.
Alex Velenko [Wed, 5 Nov 2014 11:22:28 +0000 (11:22 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Div check added.

2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>

    gcc/
    * simplify-rtx.c (simplify_binary_operation_1): Div check added.
    * rtl.h (SUBREG_P): New macro added.

    gcc/testsuite/
    * gcc.dg/asr-div1.c: New testcase.

From-SVN: r217118

9 years agoFix gnu11 fallout on Solaris 10+
Rainer Orth [Wed, 5 Nov 2014 09:52:42 +0000 (09:52 +0000)]
Fix gnu11 fallout on Solaris 10+

libobjc:
* thr.c (_XOPEN_SOURCE): Define as 600.

libiberty:
* sigsetmask.c (_POSIX_SOURCE): Remove.

libgomp:
* config/posix/lock.c (_XOPEN_SOURCE) Define as 600.

From-SVN: r217117

9 years ago[AArch64] Restructure arm_neon.h vector types.
Tejas Belagod [Wed, 5 Nov 2014 08:26:54 +0000 (08:26 +0000)]
[AArch64] Restructure arm_neon.h vector types.

2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>

* config/aarch64/aarch64-builtins.c
(aarch64_build_scalar_type): Remove.
(aarch64_scalar_builtin_types, aarch64_simd_type,
aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
aarch64_mangle_builtin_vector_type,
aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
aarch64_init_simd_builtin_types,
aarch64_init_simd_builtin_scalar_types): New.
(aarch64_init_simd_builtins): Refactor.
(aarch64_init_crc32_builtins): Fixup with qualifier.
* config/aarch64/aarch64-protos.h
(aarch64_mangle_builtin_type): Export.
* config/aarch64/aarch64-simd-builtin-types.def: New.
* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
(aarch64_mangle_type): Refactor.
* config/aarch64/arm_neon.h: Declare vector types based on
internal types.
* config/aarch64/t-aarch64: Update dependency.

From-SVN: r217114

9 years ago* go.test/go-test.exp (go-set-goarch): Enable tests on s390[x].
Dominik Vogt [Wed, 5 Nov 2014 04:08:11 +0000 (04:08 +0000)]
* go.test/go-test.exp (go-set-goarch): Enable tests on s390[x].

From-SVN: r217112

9 years agogo-test.exp: In +build lines, require whitespace around expected strings, fix check...
Ian Lance Taylor [Wed, 5 Nov 2014 04:04:24 +0000 (04:04 +0000)]
go-test.exp: In +build lines, require whitespace around expected strings, fix check for negation.

* go.test/go-test.exp: In +build lines, require whitespace around
expected strings, fix check for negation.

From-SVN: r217111

9 years agosync/atomic: fix data races in tests
Ian Lance Taylor [Wed, 5 Nov 2014 03:39:49 +0000 (03:39 +0000)]
sync/atomic: fix data races in tests

Backport https://codereview.appspot.com/111320044 from Go
master library.

From-SVN: r217110

9 years agoDaily bump.
GCC Administrator [Wed, 5 Nov 2014 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217109

9 years agolibgo: add s390 support
Ian Lance Taylor [Tue, 4 Nov 2014 22:39:30 +0000 (22:39 +0000)]
libgo: add s390 support

From Dominik Vogt.

* libgo/go/syscall/libcall_linux_s390.go: New file for s390 support.
* libgo/go/syscall/syscall_linux_s390.go: Ditto.
* libgo/go/syscall/libcall_linux_s390x.go: New file for s390x support.
* libgo/go/syscall/syscall_linux_s390x.go: Ditto.
* libgo/go/runtime/pprof/pprof.go (printStackRecord): Support s390 and
s390x.
* libgo/runtime/runtime.c (runtime_cputicks): Add support for s390 and
s390x
* libgo/mksysinfo.sh: Ditto.
(upcase_fields): New helper function

* libgo/go/debug/elf/file.go (applyRelocations): Implement relocations
on s390x.
(applyRelocationsS390x): Ditto.
(DWARF): Ditto.
* libgo/go/debug/elf/elf.go (R_390): New constants for S390 relocations.
(r390Strings): Ditto.
(String): Helper function for S390 relocations.
(GoString): Ditto.

* libgo/go/reflect/makefuncgo_s390.go: New file.
(S390MakeFuncStubGo): Implementation of s390 abi.
* libgo/go/reflect/makefuncgo_s390x.go: New file.
(S390xMakeFuncStubGo): Implementation of s390x abi.
* libgo/go/reflect/makefunc_s390.c: New file.
(makeFuncStub): s390 and s390x specific implementation of function.
* libgo/go/reflect/makefunc.go
(MakeFunc): Add support for s390 and s390x.
(makeMethodValue): Ditto.
(makeValueMethod): Ditto.
* libgo/Makefile.am (go_reflect_makefunc_s_file): Ditto.
(go_reflect_makefunc_file): Ditto.
* libgo/go/reflect/makefunc_dummy.c: Ditto.
* libgo/runtime/runtime.h (__go_makefunc_can_recover): Export prototype
for use in makefunc_s390.c.
(__go_makefunc_returning): Ditto.

* libgo/go/syscall/exec_linux.go (forkAndExecInChild): Fix order of the
arguments of the clone system call for s390[x].

* libgo/configure.ac (is_s390): New variable.
(is_s390x): Ditto
(LIBGO_IS_S390): Ditto.
(LIBGO_IS_S390X): Ditto.
(GOARCH): Support s390 and s390x.
* libgo/go/go/build/build.go (cgoEnabled): Ditto.
* libgo/go/go/build/syslist.go (goarchList): Ditto.

From-SVN: r217106

9 years agors6000.c (atomic_hold_decl, [...]): Guard declaration with #ifdef.
Pat Haugen [Tue, 4 Nov 2014 22:34:43 +0000 (22:34 +0000)]
rs6000.c (atomic_hold_decl, [...]): Guard declaration with #ifdef.

* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
atomic_update_decl): Guard declaration with #ifdef.

From-SVN: r217105

9 years agoc-common.c (shorten_compare): Do not shorten mixed DFP and non-DFP compares.
Richard Biener [Tue, 4 Nov 2014 20:46:52 +0000 (20:46 +0000)]
c-common.c (shorten_compare): Do not shorten mixed DFP and non-DFP compares.

2014-11-04  Richard Biener  <rguenther@suse.de>

* c-common.c (shorten_compare): Do not shorten mixed
DFP and non-DFP compares.

From-SVN: r217101

9 years ago* sanopt.c (sanopt_optimize_walker): Remove unused variables.
Marek Polacek [Tue, 4 Nov 2014 19:59:35 +0000 (19:59 +0000)]
* sanopt.c (sanopt_optimize_walker): Remove unused variables.

From-SVN: r217100

9 years agoMakefile.in (OBJS): Add sanopt.o.
Marek Polacek [Tue, 4 Nov 2014 19:43:01 +0000 (19:43 +0000)]
Makefile.in (OBJS): Add sanopt.o.

* Makefile.in (OBJS): Add sanopt.o.
(GTFILES): Add sanopt.c.
* asan.h (asan_expand_check_ifn): Declare.
* asan.c (asan_expand_check_ifn): No longer static.
(class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
* sanopt.c: ...here.  New file.
testsuite/
* c-c++-common/ubsan/align-2.c: Remove dg-output.
* c-c++-common/ubsan/align-4.c: Likewise.
* g++.dg/ubsan/null-1.C: Likewise.
* g++.dg/ubsan/null-2.C: Likewise.

From-SVN: r217099

9 years agogodump-1.c (dg-skip-if): Add alpha*-*-*.
Uros Bizjak [Tue, 4 Nov 2014 18:30:32 +0000 (19:30 +0100)]
godump-1.c (dg-skip-if): Add alpha*-*-*.

* gcc.misc-tests/godump-1.c (dg-skip-if): Add alpha*-*-*.

From-SVN: r217098

9 years agodevirt-44.C (dg-options): Remove -fdump-tree-optimized.
Uros Bizjak [Tue, 4 Nov 2014 18:21:34 +0000 (19:21 +0100)]
devirt-44.C (dg-options): Remove -fdump-tree-optimized.

* g++.dg/ipa/devirt-44.C (dg-options): Remove -fdump-tree-optimized.
* g++.dg/ipa/devirt-45.C (dg-options): Ditto.
* g++.dg/tree-prof/morefunc.C (dg-final-use): Cleanup profile ipa dump.
* g++.dg/tree-prof/reorder.C (dg-final-use): Ditto.
* g++.dg/tree-prof/pr35545.C (dg-fina-use): Cleanup profile_estimate
ipa dump.
* gcc.dg/fold-reassoc-3.c (dg-final): Fix scan string.
Cleanup original tree dump.
* gcc.dg/tree-prof/20050826-2.c (dg-final-use): Cleanup dom1 tree dump.
* gcc.dg/tree-prof/cmpsf-1.c (dg-final-use): Ditto.
* gcc.dg/tree-ssa/pr61144.c (dg-final): Cleanup optimized tree dump.

From-SVN: r217097

9 years agocompiler: Logical operators should yield untyped bool for untyped operands.
Ian Lance Taylor [Tue, 4 Nov 2014 17:49:01 +0000 (17:49 +0000)]
compiler: Logical operators should yield untyped bool for untyped operands.

Fixes issue 6671 for gccgo.

From-SVN: r217094

9 years agodevirt-40.C: Changed dump to not matching OBJ_TYPE_REF in function body.
Martin Jambor [Tue, 4 Nov 2014 17:39:06 +0000 (18:39 +0100)]
devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in function body.

gcc/testsuite/

2014-11-04  Martin Jambor  <mjambor@suse.cz>

* g++/dg/ipa/devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in
function body.

From-SVN: r217092

9 years ago[AArch64] fix unsafe access to deallocated stack
Jiong Wang [Tue, 4 Nov 2014 17:13:25 +0000 (17:13 +0000)]
[AArch64] fix unsafe access to deallocated stack

2014-11-04  Jiong Wang  <jiong.wang@arm.com>
2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>

  gcc/
    PR target/63293
    * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
    stack adjustment.

From-SVN: r217091

9 years ago* testsuite/util/testsuite_allocator.h (operator==): Fix recursion.
Jonathan Wakely [Tue, 4 Nov 2014 16:54:49 +0000 (16:54 +0000)]
* testsuite/util/testsuite_allocator.h (operator==): Fix recursion.

From-SVN: r217090

9 years agoFix up mode confusion in combine_simplify_rtx.
Bernd Schmidt [Tue, 4 Nov 2014 15:25:45 +0000 (15:25 +0000)]
Fix up mode confusion in combine_simplify_rtx.

The surrounding code was already fixed back when BImode was added.

* combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
also verify that mode is equal to the mode of op0.

From-SVN: r217089

9 years agoMake a temporary sequence for a jump emitted only to examine its length.
Bernd Schmidt [Tue, 4 Nov 2014 15:25:37 +0000 (15:25 +0000)]
Make a temporary sequence for a jump emitted only to examine its length.

* bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
emit into a sequence instead.

From-SVN: r217088

9 years agoFix type mismatches in intrinsic functions.
Bernd Schmidt [Tue, 4 Nov 2014 15:25:28 +0000 (15:25 +0000)]
Fix type mismatches in intrinsic functions.

* f95-lang.c (gfc_init_builtin_functions): Use type index 2 for
scalbn, scalbnl and scalbnf.
* mathbuiltins.def (JN, YN): Use type index 5.

From-SVN: r217087

9 years agog++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.
Jason Merrill [Tue, 4 Nov 2014 14:55:32 +0000 (09:55 -0500)]
g++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.

* lib/g++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.
* lib/target-supports.exp (check_effective_target_c++14_only): Likewise.

From-SVN: r217085

9 years agosh.c (emit_fpu_switch): Drop unused automatic variable.
Jan-Benedict Glaw [Tue, 4 Nov 2014 12:41:23 +0000 (12:41 +0000)]
sh.c (emit_fpu_switch): Drop unused automatic variable.

2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.

From-SVN: r217082

9 years agopr60102.c: Move dg-skip-if after dg-options.
Andrew Stubbs [Tue, 4 Nov 2014 12:09:50 +0000 (12:09 +0000)]
pr60102.c: Move dg-skip-if after dg-options.

gcc/testsuite/
* gcc.target/powerpc/pr60102.c: Move dg-skip-if after dg-options.
* gcc.target/powerpc/swaps-p8-12.c: Skip test if there would be
conflicting -mcpu options.
* gcc.target/powerpc/ppc-target-2.c: Likewise.
* gcc.target/powerpc/cell_builtin-7.c: Likewise.
* gcc.target/powerpc/dfp-builtin-1.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-7.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-1.c: Likewise.
* gcc.target/powerpc/pr48053-3.c: Likewise.
* gcc.target/powerpc/vsx-builtin-6.c: Likewise.
* gcc.target/powerpc/440-nmaclhw-1.c: Likewise.
* gcc.target/powerpc/pr57744.c: Likewise.
* gcc.target/powerpc/pr47862.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-8.c: Likewise.
* gcc.target/powerpc/recip-1.c: Likewise.
* gcc.target/powerpc/darwin-longlong.c: Likewise.
* gcc.target/powerpc/bool2-p8.c: Likewise.
* gcc.target/powerpc/mmfpgpr.c: Likewise.
* gcc.target/powerpc/pr60203.c: Likewise.
* gcc.target/powerpc/direct-move-vint1.c: Likewise.
* gcc.target/powerpc/bool2-av.c: Likewise.
* gcc.target/powerpc/pr43154.c: Likewise.
* gcc.target/powerpc/ppc-fma-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-5.c: Likewise.
* gcc.target/powerpc/pr59054.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-11.c: Likewise.
* gcc.target/powerpc/440-mullhwu-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-13.c: Likewise.
* gcc.target/powerpc/ppc-target-3.c: Likewise.
* gcc.target/powerpc/cell_builtin-8.c: Likewise.
* gcc.target/powerpc/dfp-builtin-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-8.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-2.c: Likewise.
* gcc.target/powerpc/p8vector-vbpermq.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-1.c: Likewise.
* gcc.target/powerpc/bswap64-3.c: Likewise.
* gcc.target/powerpc/bcd-1.c: Likewise.
* gcc.target/powerpc/440-mulchwu-1.c: Likewise.
* gcc.target/powerpc/extend-divide-1.c: Likewise.
* gcc.target/powerpc/vsx-builtin-7.c: Likewise.
* gcc.target/powerpc/pr48192.c: Likewise.
* gcc.target/powerpc/pr52775.c: Likewise.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/pr58673-1.c: Likewise.
* gcc.target/powerpc/pr53487.c: Likewise.
* gcc.target/powerpc/440-nmaclhw-2.c: Likewise.
* gcc.target/powerpc/recip-2.c: Likewise.
* gcc.target/powerpc/p8vector-fp.c: Likewise.
* gcc.target/powerpc/direct-move-vint2.c: Likewise.
* gcc.target/powerpc/ppc-fma-3.c: Likewise.
* gcc.target/powerpc/pr57150.c: Likewise.
* gcc.target/powerpc/pr47251.c: Likewise.
* gcc.target/powerpc/swaps-p8-6.c: Likewise.
* gcc.target/powerpc/440-mullhwu-2.c: Likewise.
* gcc.target/powerpc/bool3-p7.c: Likewise.
* gcc.target/powerpc/cell_builtin-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-14.c: Likewise.
* gcc.target/powerpc/ppc-target-4.c: Likewise.
* gcc.target/powerpc/440-mulhhw-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-1.c: Likewise.
* gcc.target/powerpc/440-machhw-1.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-3.c: Likewise.
* gcc.target/powerpc/vsx-mass-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-9.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-3.c: Likewise.
* gcc.target/powerpc/loop_align.c: Likewise.
* gcc.target/powerpc/lhs-1.c: Likewise.
* gcc.target/powerpc/sd-vsx.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-2.c: Likewise.
* gcc.target/powerpc/bcd-2.c: Likewise.
* gcc.target/powerpc/20040121-1.c: Likewise.
* gcc.target/powerpc/pr52457.c: Likewise.
* gcc.target/powerpc/440-mulchwu-2.c: Likewise.
* gcc.target/powerpc/extend-divide-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-8.c: Likewise.
* gcc.target/powerpc/p8vector-int128-2.c: Likewise.
* gcc.target/powerpc/pr58673-2.c: Likewise.
* gcc.target/powerpc/atomic-p7.c: Likewise.
* gcc.target/powerpc/recip-3.c: Likewise.
* gcc.target/powerpc/440-maclhwu-1.c: Likewise.
* gcc.target/powerpc/optimize-bswapsi-2.c: Likewise.
* gcc.target/powerpc/popcount-1.c: Likewise.
* gcc.target/powerpc/altivec-32.c: Likewise.
* gcc.target/powerpc/timode_off.c: Likewise.
* gcc.target/powerpc/p8vector-ldst.c: Likewise.
* gcc.target/powerpc/pack01.c: Likewise.
* gcc.target/powerpc/pr55033.c: Likewise.
* gcc.target/powerpc/ppc-fma-4.c: Likewise.
* gcc.target/powerpc/swaps-p8-7.c: Likewise.
* gcc.target/powerpc/ppu-intrinsics.c: Likewise.
* gcc.target/powerpc/440-macchwu-1.c: Likewise.
* gcc.target/powerpc/440-mulhhwu-1.c: Likewise.
* gcc.target/powerpc/440-mulchw-1.c: Likewise.
* gcc.target/powerpc/bool3-p8.c: Likewise.
* gcc.target/powerpc/cell_builtin-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-15.c: Likewise.
* gcc.target/powerpc/440-macchw-1.c: Likewise.
* gcc.target/powerpc/440-mulhhw-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-2.c: Likewise.
* gcc.target/powerpc/440-machhw-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-4.c: Likewise.
* gcc.target/powerpc/pr46728-16.c: Likewise.
* gcc.target/powerpc/vsx-builtin-1.c: Likewise.
* gcc.target/powerpc/bool3-av.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-4.c: Likewise.
* gcc.target/powerpc/ppc-pow.c: Likewise.
* gcc.target/powerpc/lhs-2.c: Likewise.
* gcc.target/powerpc/pr39902-2.c: Likewise.
* gcc.target/powerpc/20041111-1.c: Likewise.
* gcc.target/powerpc/builtins-1.c: Likewise.
* gcc.target/powerpc/bcd-3.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-3.c: Likewise.
* gcc.target/powerpc/pr57949-1.c: Likewise.
* gcc.target/powerpc/atomic-p8.c: Likewise.
* gcc.target/powerpc/sd-pwr6.c: Likewise.
* gcc.target/powerpc/recip-4.c: Likewise.
* gcc.target/powerpc/440-maclhwu-2.c: Likewise.
* gcc.target/powerpc/warn-2.c: Likewise.
* gcc.target/powerpc/parity-1.c: Likewise.
* gcc.target/powerpc/popcount-2.c: Likewise.
* gcc.target/powerpc/crypto-builtin-1.c: Likewise.
* gcc.target/powerpc/ppc-fma-5.c: Likewise.
* gcc.target/powerpc/swaps-p8-8.c: Likewise.
* gcc.target/powerpc/pr42747.c: Likewise.
* gcc.target/powerpc/440-macchwu-2.c: Likewise.
* gcc.target/powerpc/440-mulhhwu-2.c: Likewise.
* gcc.target/powerpc/dfp-dd-2.c: Likewise.
* gcc.target/powerpc/direct-move-float1.c: Likewise.
* gcc.target/powerpc/440-mulchw-2.c: Likewise.
* gcc.target/powerpc/cell_builtin-3.c: Likewise.
* gcc.target/powerpc/swaps-p8-16.c: Likewise.
* gcc.target/powerpc/440-macchw-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-3.c: Likewise.
* gcc.target/powerpc/dfp-td-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-5.c: Likewise.
* gcc.target/powerpc/vsx-builtin-2.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-5.c: Likewise.
* gcc.target/powerpc/lhs-3.c: Likewise.
* gcc.target/powerpc/440-nmachhw-1.c: Likewise.
* gcc.target/powerpc/builtins-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
* gcc.target/powerpc/pr52199.c: Likewise.
* gcc.target/powerpc/440-machhwu-1.c: Likewise.
* gcc.target/powerpc/pr57949-2.c: Likewise.
* gcc.target/powerpc/recip-5.c: Likewise.
* gcc.target/powerpc/popcount-3.c: Likewise.
* gcc.target/powerpc/vsx-vector-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-1.c: Likewise.
* gcc.target/powerpc/optimize-bswapdi-2.c: Likewise.
* gcc.target/powerpc/ppc-fma-6.c: Likewise.
* gcc.target/powerpc/vsx-extract-1.c: Likewise.
* gcc.target/powerpc/pr48226.c: Likewise.
* gcc.target/powerpc/swaps-p8-9.c: Likewise.
* gcc.target/powerpc/pr47755-2.c: Likewise.
* gcc.target/powerpc/direct-move-float2.c: Likewise.
* gcc.target/powerpc/cell_builtin-4.c: Likewise.
* gcc.target/powerpc/direct-move-double1.c: Likewise.
* gcc.target/powerpc/swaps-p8-17.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-4.c: Likewise.
* gcc.target/powerpc/dfp-td-3.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-6.c: Likewise.
* gcc.target/powerpc/440-nmacchw-1.c: Likewise.
* gcc.target/powerpc/vsx-builtin-3.c: Likewise.
* gcc.target/powerpc/440-nmachhw-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-5.c: Likewise.
* gcc.target/powerpc/bool2-p5.c: Likewise.
* gcc.target/powerpc/440-machhwu-2.c: Likewise.
* gcc.target/powerpc/fusion.c: Likewise.
* gcc.target/powerpc/recip-6.c: Likewise.
* gcc.target/powerpc/altivec-cell-6.c: Likewise.
* gcc.target/powerpc/vsx-vector-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-2.c: Likewise.
* gcc.target/powerpc/optimize-bswapdi-3.c: Likewise.
* gcc.target/powerpc/ppc-fma-7.c: Likewise.
* gcc.target/powerpc/vsx-extract-2.c: Likewise.
* gcc.target/powerpc/direct-move-long1.c: Likewise.
* gcc.target/powerpc/dfp-dd.c: Likewise.
* gcc.target/powerpc/swaps-p8-10.c: Likewise.
* gcc.target/powerpc/cell_builtin-5.c: Likewise.
* gcc.target/powerpc/direct-move-double2.c: Likewise.
* gcc.target/powerpc/440-mullhw-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-5.c: Likewise.
* gcc.target/powerpc/440-maclhw-1.c: Likewise.
* gcc.target/powerpc/dfp-td.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-7.c: Likewise.
* gcc.target/powerpc/pr48053-1.c: Likewise.
* gcc.target/powerpc/440-nmacchw-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-4.c: Likewise.
* gcc.target/powerpc/pr60676.c: Likewise.
* gcc.target/powerpc/pr48258-1.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
* gcc.target/powerpc/pr48857.c: Likewise.
* gcc.target/powerpc/quad-atomic.c: Likewise.
* gcc.target/powerpc/altivec-cell-7.c: Likewise.
* gcc.target/powerpc/atomic_load_store-p8.c: Likewise.
* gcc.target/powerpc/vsx-vector-3.c: Likewise.
* gcc.target/powerpc/swaps-p8-3.c: Likewise.
* gcc.target/powerpc/pr56605.c: Likewise.
* gcc.target/powerpc/vsx-extract-3.c: Likewise.
* gcc.target/powerpc/pr53199.c: Likewise.
* gcc.target/powerpc/direct-move-long2.c: Likewise.
* gcc.target/powerpc/swaps-p8-11.c: Likewise.
* gcc.target/powerpc/vsx-float0.c: Likewise.
* gcc.target/powerpc/ppc-target-1.c: Likewise.
* gcc.target/powerpc/altivec-20.c: Likewise.
* gcc.target/powerpc/cell_builtin-6.c: Likewise.
* gcc.target/powerpc/440-mullhw-2.c: Likewise.
* gcc.target/powerpc/darwin-ehreturn-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-6.c: Likewise.
* gcc.target/powerpc/440-maclhw-2.c: Likewise.
* gcc.target/powerpc/440-dlmzb-strlen-1.c: Likewise.
* gcc.target/powerpc/pr60137.c: Likewise.
* gcc.target/powerpc/bswap64-1.c: Likewise.
* gcc.target/powerpc/pr48053-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-5.c: Likewise.
* gcc.target/powerpc/pr48258-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
* gcc.target/powerpc/vsx-sfminmax.c: Likewise.
* gcc.target/powerpc/bool2-p7.c: Likewise.
* gcc.target/powerpc/ppc-round.c: Likewise.
* gcc.target/powerpc/altivec-cell-8.c: Likewise.
* gcc.target/powerpc/vsx-vector-4.c: Likewise.
* gcc.target/powerpc/ppc-fma-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-4.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-10.c: Likewise.
* gcc.target/powerpc/pr47755.c: Likewise.

From-SVN: r217081

9 years ago[ARM] Migrate to new reduc_[us](min|max)_scal_optab
Alan Lawrence [Tue, 4 Nov 2014 12:09:38 +0000 (12:09 +0000)]
[ARM] Migrate to new reduc_[us](min|max)_scal_optab

config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
(reduc_smin_scal_<mode> *2): ...this; extract scalar result.
(reduc_smax_<mode> *2): Rename to...
(reduc_smax_scal_<mode> *2): ...this; extract scalar result.
(reduc_umin_<mode> *2): Rename to...
(reduc_umin_scal_<mode> *2): ...this; extract scalar result.
(reduc_umax_<mode> *2): Rename to...
(reduc_umax_scal_<mode> *2): ...this; extract scalar result.

From-SVN: r217080

9 years ago[ARM] Migrate to new reduc_plus_scal_optab
Alan Lawrence [Tue, 4 Nov 2014 12:05:52 +0000 (12:05 +0000)]
[ARM] Migrate to new reduc_plus_scal_optab

config/arm/neon.md (reduc_plus_*): Rename to...
(reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.

From-SVN: r217079

9 years ago[AArch64] Fix predicate and constraint mismatch in logical atomic operations
Michael Collison [Tue, 4 Nov 2014 11:23:10 +0000 (11:23 +0000)]
[AArch64] Fix predicate and constraint mismatch in logical atomic operations

2014-11-04  Michael Collison <michael.collison@linaro.org>

* config/aarch64/iterators.md (lconst_atomic): New mode attribute
to support constraints for CONST_INT in atomic operations.
* config/aarch64/atomics.md
(atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
(atomic_nand<mode>): Likewise.
(atomic_fetch_<atomic_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(atomic_<atomic_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.

From-SVN: r217076

9 years agoFix typo in definition of __ARM_FEATURE_IDIV
Ramana Radhakrishnan [Tue, 4 Nov 2014 09:45:22 +0000 (09:45 +0000)]
Fix typo in definition of __ARM_FEATURE_IDIV

From-SVN: r217073

9 years agoFix typo in definition of __ARM_FEATURE_IDIV
Ramana Radhakrishnan [Tue, 4 Nov 2014 09:45:06 +0000 (09:45 +0000)]
Fix typo in definition of __ARM_FEATURE_IDIV

From-SVN: r217072

9 years agoubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
Marek Polacek [Tue, 4 Nov 2014 09:30:47 +0000 (09:30 +0000)]
ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.

* ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
testsuite/
* c-c++-common/ubsan/object-size-10.c: New test.

From-SVN: r217071

9 years agorx.c (rx_handle_func_attribute): Mark unused argument.
Jan-Benedict Glaw [Tue, 4 Nov 2014 09:22:51 +0000 (09:22 +0000)]
rx.c (rx_handle_func_attribute): Mark unused argument.

2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.

From-SVN: r217070

9 years agonumeric.h: Do not use default arguments in function template redeclarations (definiti...
Jonathan Wakely [Tue, 4 Nov 2014 03:41:16 +0000 (03:41 +0000)]
numeric.h: Do not use default arguments in function template redeclarations (definitions).

* include/parallel/numeric.h: Do not use default arguments in function
template redeclarations (definitions).

From-SVN: r217069

9 years agoDo not assume allocator is assignable.
Jonathan Wakely [Tue, 4 Nov 2014 03:41:12 +0000 (03:41 +0000)]
Do not assume allocator is assignable.

* include/bits/stl_deque.h (_Deque_base(_Deque_base&&)): Copy
allocator instead of moving.
* testsuite/23_containers/deque/allocator/move-2.cc: New.

From-SVN: r217068

9 years agoMake reference_wrapper trivially copyable.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:33 +0000 (02:49 +0000)]
Make reference_wrapper trivially copyable.

* include/std/functional (reference_wrapper): Define copy constructor
and copy assignment as defaulted.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
* testsuite/20_util/reference_wrapper/requirements.cc: New.

From-SVN: r217067

9 years agoUse ctype_base::blank in regex_traits.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:30 +0000 (02:49 +0000)]
Use ctype_base::blank in regex_traits.

* include/bits/regex.h (regex_traits::_RegexMask): Remove _S_blank and
adjust _S_valid_mask.
* include/bits/regex.tcc (regex_traits::lookup_classname): Use
ctype_base::blank.

From-SVN: r217066

9 years ago* include/std/functional (_Bind_simple): Simplify construction.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:27 +0000 (02:49 +0000)]
* include/std/functional (_Bind_simple): Simplify construction.

From-SVN: r217065

9 years agoUse aliases for type traits in C++14 mode.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:20 +0000 (02:49 +0000)]
Use aliases for type traits in C++14 mode.

* include/bits/unique_ptr.h (make_unique): Use alias for trait.
* include/experimental/optional (__constexpr_addressof): Likewise.
(_Optional_base, optional, make_optional): Likewise.

From-SVN: r217064

9 years agorevert: ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.
Zhenqiang Chen [Tue, 4 Nov 2014 02:21:51 +0000 (02:21 +0000)]
revert: ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.

2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>

Revert:
2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Allow CC mode if HAVE_cbranchcc4.

From-SVN: r217062

9 years agoDaily bump.
GCC Administrator [Tue, 4 Nov 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217061

9 years agogodump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support with -fdump...
Dominik Vogt [Tue, 4 Nov 2014 00:00:14 +0000 (00:00 +0000)]
godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support with -fdump-go-spec.

gcc/:
* godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
with -fdump-go-spec.  Anonymous substructures are now flattened and
replaced by their fields (record) or the first named, non-bitfield
field (union).
gcc/testsuite/:
* build-go/gcc/testsuite/gcc/godump-1.out: Update godump tests.

From-SVN: r217058

9 years agoinput.c (expand_location_to_spelling_point): Fix typo.
Manuel López-Ibáñez [Mon, 3 Nov 2014 22:57:33 +0000 (22:57 +0000)]
input.c (expand_location_to_spelling_point): Fix typo.

2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* input.c (expand_location_to_spelling_point): Fix typo.
(expansion_point_location_if_in_system_header): Fix comment.

From-SVN: r217057

9 years agocoarray_collectives_14.f90: Fix testcase.
Tobias Burnus [Mon, 3 Nov 2014 20:14:48 +0000 (21:14 +0100)]
coarray_collectives_14.f90: Fix testcase.

2014-11-03  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_collectives_14.f90: Fix testcase.

From-SVN: r217053

9 years ago* config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
Pitchumani Sivanupandi [Mon, 3 Nov 2014 19:03:34 +0000 (19:03 +0000)]
* config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.

From-SVN: r217051

9 years agoalgo.h: Do not use default arguments in function template redeclarations (definitions).
Paolo Carlini [Mon, 3 Nov 2014 17:54:59 +0000 (17:54 +0000)]
algo.h: Do not use default arguments in function template redeclarations (definitions).

2014-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

* include/parallel/algo.h: Do not use default arguments in function
template redeclarations (definitions).

From-SVN: r217050

9 years agoruntime: use "$GOC -dumpversion" instead of BASE-VER to discover compiler version
Ian Lance Taylor [Mon, 3 Nov 2014 16:30:51 +0000 (16:30 +0000)]
runtime: use "$GOC -dumpversion" instead of BASE-VER to discover compiler version

From-SVN: r217049

9 years agotree-eh.c (operation_could_trap_helper_p): Handle conversions like ordinary operations.
Richard Biener [Mon, 3 Nov 2014 15:49:43 +0000 (15:49 +0000)]
tree-eh.c (operation_could_trap_helper_p): Handle conversions like ordinary operations.

2014-11-03  Richard Biener  <rguenther@suse.de>

* tree-eh.c (operation_could_trap_helper_p): Handle conversions
like ordinary operations.
* gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
as NOP_EXPR.

From-SVN: r217048

9 years agoImplement TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and e500.
Joseph Myers [Mon, 3 Nov 2014 13:40:50 +0000 (13:40 +0000)]
Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and e500.

This patch implements support for TARGET_ATOMIC_ASSIGN_EXPAND_FENV for
powerpc*-*-linux* soft-float and e500, provided GCC is configured for
glibc 2.19 or later on the target.

New functions __atomic_feholdexcept, __atomic_feclearexcept and
__atomic_feupdateenv were added (to libc) in that glibc version (for
powerpc soft-float / e500 only) in order to support this part of C11.
For soft-float, libc functions are needed because the floating-point
exception state is in TLS variables in libc that aren't directly
accessible outside of glibc.  For e500, they are also needed because
of the prctl syscalls involved in controlling trapping for exceptions
and informing the kernel when certain exception flags have been
cleared.  The actual implementation in GCC is a straightforward matter
of calling those functions.

Tested with no regressions for cross to powerpc-linux-gnu
(soft-float); the c11-atomic-exec-5.c results go from FAIL to PASS.

* configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
macros.
* configure, config.h.in: Regenerate.
* config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
(RS6000_GLIBC_ATOMIC_FENV): New macro.
* config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
(RS6000_GLIBC_ATOMIC_FENV): New macro.
* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
(atomic_update_decl): New static variables.
(rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
and __atomic_feupdateenv for soft-float and no-FPRs.

From-SVN: r217040

9 years agomatch.pd: Add two abs patterns.
Richard Biener [Mon, 3 Nov 2014 12:59:47 +0000 (12:59 +0000)]
match.pd: Add two abs patterns.

2014-11-03  Richard Biener  <rguenther@suse.de>

* match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
* fold-const.c (fold_unary_loc): Remove them here.
(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
* gimple-fold.c (fold_gimple_assign): Remove now obsolete
GIMPLE_UNARY_RHS case.
(gimple_fold_stmt_to_constant_1): Likewise.
(replace_stmt_with_simplification): Fix inverted comparison.

From-SVN: r217039

9 years agore PR c/52769 (Unspecified designated initializer might not set to zero in some cases)
Marek Polacek [Mon, 3 Nov 2014 12:35:35 +0000 (12:35 +0000)]
re PR c/52769 (Unspecified designated initializer might not set to zero in some cases)

PR c/52769
* gcc.dg/pr52769.c: New test.

From-SVN: r217036

9 years agore PR c++/57820 ([DR 253] NSDMI and const objects)
Paolo Carlini [Mon, 3 Nov 2014 10:49:05 +0000 (10:49 +0000)]
re PR c++/57820 ([DR 253] NSDMI and const objects)

2014-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/57820
* g++.dg/cpp0x/constexpr-ctor16.C: New.
* g++.dg/cpp0x/constexpr-ctor17.C: Likewise.

From-SVN: r217035

9 years agore PR tree-optimization/60770 (disappearing clobbers)
Marc Glisse [Mon, 3 Nov 2014 10:47:04 +0000 (11:47 +0100)]
re PR tree-optimization/60770 (disappearing clobbers)

2014-11-03  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/60770
gcc/
* tree-into-ssa.c (rewrite_update_stmt): Return whether the
statement should be removed.
(maybe_register_def): Likewise. Replace clobbers with default
definitions.
(rewrite_dom_walker::before_dom_children): Remove statement if
rewrite_update_stmt says so.
* tree-ssa-live.c: Include tree-ssa.h.
(set_var_live_on_entry): Do not mark undefined variables as live.
(verify_live_on_entry): Do not check undefined variables.
* tree-ssa.h (ssa_undefined_value_p): New parameter for the case
of partially undefined variables.
* tree-ssa.c (ssa_undefined_value_p): Likewise.
(execute_update_addresses_taken): Do not drop clobbers.

gcc/testsuite/
* gcc.dg/tree-ssa/pr60770-1.c: New file.

From-SVN: r217034

9 years agore PR tree-optimization/63666 (FAIL: gcc.dg/vect/pr45752.c (internal compiler error))
Marc Glisse [Mon, 3 Nov 2014 10:36:35 +0000 (11:36 +0100)]
re PR tree-optimization/63666 (FAIL: gcc.dg/vect/pr45752.c (internal compiler error))

2014-11-03  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/63666
* fold-const.c: Include "optabs.h".
(fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
can_vec_perm_p permutation to one that is not.

From-SVN: r217033

9 years agox86: extend vect-args testcase to AVX flavors
Jan Beulich [Mon, 3 Nov 2014 09:18:51 +0000 (09:18 +0000)]
x86: extend vect-args testcase to AVX flavors

gcc/testsuite:
2014-11-03  Jan Beulich  <jbeulich@suse.com>

* gcc.target/i386/i386.exp: Extend option set to test
vect-args.c with to include -mavx, -mavx2, and -mavx512f.
* gcc.target/i386/vect-args.c: Add AVX* modes and tests.

From-SVN: r217032

9 years ago20010129-1.c: Compile with -mtune=i686 for ia32 targets only.
Uros Bizjak [Mon, 3 Nov 2014 08:30:21 +0000 (09:30 +0100)]
20010129-1.c: Compile with -mtune=i686 for ia32 targets only.

* gcc.c-torture/execute/20010129-1.c: Compile with -mtune=i686
for ia32 targets only.
* g++.dg/ext/attrib42.C: Compile for ia32 targets only.
* g++.dg/tree-ssa/pr29902.C: Ditto.
* g++.dg/cpp0x/gen-attrs-42.C: Ditto.

From-SVN: r217030

9 years agoifcvt.c (noce_try_store_flag_mask): Check rtx cost.
Zhenqiang Chen [Mon, 3 Nov 2014 06:36:11 +0000 (06:36 +0000)]
ifcvt.c (noce_try_store_flag_mask): Check rtx cost.

ChangeLog:
2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* ifcvt.c (noce_try_store_flag_mask): Check rtx cost.

testsuite/ChangeLog:
2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* gcc.target/arm/ifcvt-size-check.c: New test.

From-SVN: r217029

9 years ago[multiple changes]
Naveen H.S [Mon, 3 Nov 2014 05:13:43 +0000 (05:13 +0000)]
[multiple changes]

2014-10-31  Andrew Pinski  <apinski@cavium.com>

* config/mips/mips-cpus.def (octeon3): New cpu.
* config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
(mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
of the comparison no longer matches mode of the operands.
(mips_issue_rate): Handle PROCESSOR_OCTEON3.
* config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
(TARGET_OCTEON2): Likewise.
(TUNE_OCTEON): Add Octeon3.
* config/mips/mips.md (processor): Add octeon3.
* config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
(octeon_arith): Add octeon3.
(octeon_condmove): Remove.
(octeon_condmove_o1): New reservation.
(octeon_condmove_o2): New reservation.
(octeon_condmove_o3_int_on_cc): New reservation.
(octeon_load_o2): Add octeon3.
(octeon_cop_o2): Likewise.
(octeon_store): Likewise.
(octeon_brj_o2): Likewise.
(octeon_imul3_o2): Likewise.
(octeon_imul_o2): Likewise.
(octeon_mfhilo_o2): Likewise.
(octeon_imadd_o2): Likewise.
(octeon_idiv_o2_si): Likewise.
(octeon_idiv_o2_di): Likewise.
(octeon_fpu): Add to the automaton.
(octeon_fpu): New cpu unit.
(octeon_condmove_o2): Check for non floating point modes.
(octeon_load_o2): Add prefetchx.
(octeon_cop_o2): Don't check for octeon3.
(octeon3_faddsubcvt): New reservation.
(octeon3_fmul): Likewise.
(octeon3_fmadd): Likewise.
(octeon3_div_sf): Likewise.
(octeon3_div_df): Likewise.
(octeon3_sqrt_sf): Likewise.
(octeon3_sqrt_df): Likewise.
(octeon3_rsqrt_sf): Likewise.
(octeon3_rsqrt_df): Likewise.
(octeon3_fabsnegmov): Likewise.
(octeon_fcond): Likewise.
(octeon_fcondmov): Likewise.
(octeon_fpmtc1): Likewise.
(octeon_fpmfc1): Likewise.
(octeon_fpload): Likewise.
(octeon_fpstore): Likewise.
* config/mips/mips-tables.opt: Regenerate.
* doc/invoke.texi (-march=@var{arch}): Add octeon3.

2014-10-31  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* gcc.target/mips/octeon3-pipe-1.c: New test.

From-SVN: r217028

9 years agoifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.
Zhenqiang Chen [Mon, 3 Nov 2014 03:20:30 +0000 (03:20 +0000)]
ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.

2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Allow CC mode if HAVE_cbranchcc4.

From-SVN: r217026

9 years agoCheck number of arguments in bind expressions.
Jonathan Wakely [Mon, 3 Nov 2014 02:55:36 +0000 (02:55 +0000)]
Check number of arguments in bind expressions.

* include/std/functional (_Mem_fn_traits_base::__arity): New typedef.
(_Mem_fn_base::_Arity): New typedef.
(_Bind_check_arity): New class template.
(_Bind_helper, _Bindres_helper, _Bind_simple_helper): Check arity.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.

From-SVN: r217025

9 years agoAdd support for ref-qualified functions to std::mem_fn
Jonathan Wakely [Mon, 3 Nov 2014 02:55:32 +0000 (02:55 +0000)]
Add support for ref-qualified functions to std::mem_fn

PR libstdc++/57898
* include/std/functional (_Mem_fn_traits_base): New class template.
(_Mem_fn_traits): New class template with specializations for every
combination of cv-qualified and ref-qualified member function.
(_Mem_fn_base): New class template for all pointer to member function
types and partial specialization for pointer to member object types.
(_Mem_fn): Inherit from _Mem_fn_base.
* testsuite/20_util/function_objects/mem_fn/refqual.cc: New.

From-SVN: r217024

9 years agoDaily bump.
GCC Administrator [Mon, 3 Nov 2014 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217023

9 years agogen-attrs-42.C: Add x86_64-*-* target.
Uros Bizjak [Sun, 2 Nov 2014 21:32:54 +0000 (22:32 +0100)]
gen-attrs-42.C: Add x86_64-*-* target.

* g++.dg/cpp0x/gen-attrs-42.C: Add x86_64-*-* target.
* g++.dg/ext/attrib42.C: Ditto.
* g++.dg/torture/pr51344.C: Ditto.
* g++.dg/tree-ssa/pr29902.C: Ditto.
* gcc.c-torture/execute/20010129-1.c: Ditto.
* gcc.dg/combine_ashiftrt_2.c: Ditto.
* gcc.dg/march-generic.c: Ditto.
* gcc.dg/torture/pr17526.c: Ditto.
* gcc.dg/union-4.c: Ditto.

From-SVN: r217020

9 years agoarc.c (write_ext_corereg_1): Delete.
Richard Sandiford [Sun, 2 Nov 2014 20:00:25 +0000 (20:00 +0000)]
arc.c (write_ext_corereg_1): Delete.

gcc/
* config/arc/arc.c (write_ext_corereg_1): Delete.
(arc_write_ext_corereg): Use FOR_EACH_SUBRTX.

From-SVN: r217019

9 years agoarc.c (arc600_corereg_hazard_1): Delete.
Richard Sandiford [Sun, 2 Nov 2014 20:00:19 +0000 (20:00 +0000)]
arc.c (arc600_corereg_hazard_1): Delete.

gcc/
* config/arc/arc.c (arc600_corereg_hazard_1): Delete.
(arc600_corereg_hazard): Use FOR_EACH_SUBRTX.

From-SVN: r217018

9 years agoarc.c (arc_rewrite_small_data_p): Constify argument.
Richard Sandiford [Sun, 2 Nov 2014 20:00:12 +0000 (20:00 +0000)]
arc.c (arc_rewrite_small_data_p): Constify argument.

gcc/
* config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
(small_data_pattern_1): Delete.
(small_data_pattern): Use FOR_EACH_SUBRTX.

From-SVN: r217017

9 years agoarc.c: Include rtl-iter.h.
Richard Sandiford [Sun, 2 Nov 2014 20:00:05 +0000 (20:00 +0000)]
arc.c: Include rtl-iter.h.

gcc/
* config/arc/arc.c: Include rtl-iter.h.
(arc_rewrite_small_data_1): Delete.
(arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.

From-SVN: r217016

9 years agore PR target/24188 (WRITE(6,*) causes an ICE with -mcmodel=medium)
Uros Bizjak [Sun, 2 Nov 2014 19:27:06 +0000 (20:27 +0100)]
re PR target/24188 (WRITE(6,*) causes an ICE with -mcmodel=medium)

* c-c++-common/ubsan/float-cast-overflow-6.c: Add i?86-*-* target.
* g++.dg/abi/no-weak1.C: Ditto.
* g++.dg/opt/pr44919.C: Ditto.
* g++.dg/opt/pr46640.C: Ditto.
* g++.dg/opt/pr46649.C: Ditto.
* g++.dg/opt/pr47036.C: Ditto.
* g++.dg/opt/pr48273.C: Ditto.
* g++.dg/opt/pr48302.C: Ditto.
* g++.dg/opt/pr45788.C: Ditto.
* g++.dg/opt/pr57662.C: Ditto.
* gcc.dg/20031102-1.c: Ditto.
* gcc.dg/builtin-bswap-7.c: Ditto.
* gcc.dg/builtin-bswap-7a.c: Ditto.
* gcc.dg/builtin-bswap-9.c: Ditto.
* gcc.dg/combine_ashiftrt_1.c: Ditto.
* gcc.dg/guality/bswaptest.c: Ditto.
* gcc.dg/guality/clztest.c: Ditto.
* gcc.dg/guality/ctztest.c: Ditto.
* gcc.dg/guality/pr45003-1.c: Ditto.
* gcc.dg/guality/pr45003-2.c: Ditto.
* gcc.dg/guality/pr45003-3.c: Ditto.
* gcc.dg/guality/pr58791-4.c: Ditto.
* gcc.dg/guality/rotatetest.c:Ditto.
* gcc.dg/ifcvt-fabs-1.c: Ditto.
* gcc.dg/ira-loop-pressure.c: Ditto.
* gcc.dg/ira-shrinkwrap-prep-1.c: Ditto.
* gcc.dg/ira-shrinkwrap-prep-2.c: Ditto.
* gcc.dg/lto/pr47259_0.c: Ditto.
* gcc.dg/memcpy-5.c: Ditto.
* gcc.dg/pr10474.c: Ditto.
* gcc.dg/pr37438.c: Ditto.
* gcc.dg/pr39453.c: Ditto.
* gcc.dg/pr40501.c: Ditto.
* gcc.dg/pr42245-2.c: Ditto.
* gcc.dg/pr42245.c: Ditto.
* gcc.dg/pr42246.c: Ditto.
* gcc.dg/pr42249.c: Ditto.
* gcc.dg/pr42388.c: Ditto.
* gcc.dg/pr42389.c: Ditto.
* gcc.dg/pr45352-1.c: Ditto.
* gcc.dg/pr45352-2.c: Ditto.
* gcc.dg/pr45352-3.c: Ditto.
* gcc.dg/pr45352.c: Ditto.
* gcc.dg/pr45472.c: Ditto.
* gcc.dg/pr45652.c: Ditto.
* gcc.dg/pr46212.c: Ditto.
* gcc.dg/pr46521.c: Ditto.
* gcc.dg/pr46522.c: Ditto.
* gcc.dg/pr46875.c: Ditto.
* gcc.dg/pr48374.c: Ditto.
* gcc.dg/pr50251.c: Ditto.
* gcc.dg/pr54472.c: Ditto.
* gcc.dg/pr55702.c: Ditto.
* gcc.dg/pr56990.c: Ditto.
* gcc.dg/pr57104.c: Ditto.
* gcc.dg/pr57662.c: Ditto.
* gcc.dg/pr60866.c: Ditto.
* gcc.dg/shrink-wrap-loop.c: Ditto.
* gcc.dg/tm/memopt-15.c: Ditto.
* gcc.dg/torture/pr52720.c: Ditto.
* gcc.dg/torture/pr56778.c: Ditto.
* gcc.dg/tree-prof/pr45354.c: Ditto.
* gcc.dg/tree-prof/pr50907.c: Ditto.
* gcc.dg/tree-ssa/loop-16.c: Ditto.
* gcc.dg/tree-ssa/loop-18.c: Ditto.
* gcc.dg/tree-ssa/pr44423.c: Ditto.
* gcc.dg/misc-tests/godump-1.c: Ditto.
* gfortran.dg/PR24188.f: Ditto.
* gfortran.dg/errnocheck_1.f90: Ditto.
* gfortran.dg/g77/20010216-1.f: Ditto.
* gfortran.dg/pr42246-2.f: Ditto.
* gfortran.dg/pr42294.f: Ditto.
* gfortran.dg/pr44691.f: Ditto.
* gfortran.dg/vect/pr45714-a.f: Ditto.
* gcc.c-torture/execute/ieee/ieee.exp: Ditto.
* gcc.misc-tests/linkage.exp: Ditto.
* lib/target-supports.exp: Reformat x86 tagets.
(check_effective_target_whole_vector_shift): Add i?86-*-* target.

From-SVN: r217015

9 years ago[ARM] Fix CLZ_DEFINED_VALUE_AT_ZERO for vector modes
Michael Collison [Sun, 2 Nov 2014 18:00:59 +0000 (18:00 +0000)]
[ARM] Fix CLZ_DEFINED_VALUE_AT_ZERO for vector modes

2014-11-02  Michael Collison  <michael.collison@linaro.org>

* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
to support vector modes.
(CTZ_DEFINED_VALUE_AT_ZERO): Ditto.

From-SVN: r217014

9 years agore PR c++/57694 ([c++11] constexpr constructor does not work with const address of...
Paolo Carlini [Sun, 2 Nov 2014 09:31:12 +0000 (09:31 +0000)]
re PR c++/57694 ([c++11] constexpr constructor does not work with const address of own member)

2014-11-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/57694
* g++.dg/cpp0x/constexpr-ctor15.C: New.

From-SVN: r217013

9 years agofeat-cxx11.C: Commentary and rearrangement of tests.
Edward Smith-Rowland [Sun, 2 Nov 2014 02:51:41 +0000 (02:51 +0000)]
feat-cxx11.C: Commentary and rearrangement of tests.

testsuite/

2014-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

* g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx98-neg.C: Ditto
* g++.dg/cpp1y/feat-cxx98.C: Commentary.

c-family/

2014-11-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

* c-cppbuiltin.c: Define __cpp_aggregate_nsdmi.

From-SVN: r217012

9 years agoDaily bump.
GCC Administrator [Sun, 2 Nov 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217010

9 years ago2014-11-01 Andrew MacLeod <amacleod@redhat,com>
Andrew MacLeod [Sat, 1 Nov 2014 13:34:15 +0000 (13:34 +0000)]
2014-11-01  Andrew MacLeod  <amacleod@redhat,com>

* optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
* genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
* optabs.c: (gen_move_insn): Move to expr.c.
* expr.h: Move protypes and enums to optabs.h.
* expr.c: (gen_move_insn): Relocate from optabs.c.
* genemit.c (main): Include insn-codes.h.
* gengtype.c (open_base_files): Include insn-codes.h.
* asan.c: Include insn-codes.h.
* bb-reorder.c: Ditto.
* builtins.c: Ditto.
* calls.c: Ditto.
* cfgexpand.c: Ditto.
* cilk-common.c: Ditto.
* combine.c: Ditto.
* dojump.c: Ditto.
* dse.c: Ditto.
* except.c: Ditto.
* explow.c: Ditto.
* expmed.c: Ditto.
* function.c: Ditto.
* ifcvt.c: Ditto.
* internal-fn.c: Ditto.
* loop-unroll.c: Ditto.
* lra.c: Ditto.
* modulo-sched.c: Ditto.
* omp-low.c: Ditto.
* postreload.c: Ditto.
* ree.c: Ditto.
* reload.c: Ditto.
* reload1.c: Ditto.
* shrink-wrap.c: Ditto.
* simplify-rtx.c: Ditto.
* stmt.c: Ditto.
* target-globals.c: Ditto.
* targhooks.c: Ditto.
* toplev.c: Ditto.
* tree-if-conv.c: Ditto.
* tree-ssa-forwprop.c: Ditto.
* tree-ssa-loop-prefetch.c: Ditto.
* tree-ssa-math-opts.c: Ditto.
* tree-ssa-phiopt.c: Ditto.
* tree-ssa-reassoc.c: Ditto.
* tree-switch-conversion.c: Ditto.
* tree-vect-data-refs.c: Ditto.
* tree-vect-generic.c: Ditto.
* tree-vect-loop.c: Ditto.
* tree-vect-patterns.c: Ditto.
* tree-vect-slp.c: Ditto.
* tree-vect-stmts.c: Ditto.
* tree-vrp.c: Ditto.
* value-prof.c: Ditto.
* config/aarch64/aarch64-builtins.c: Ditto.
* config/alpha/alpha.c: Ditto.
* config/arm/arm.c: Ditto.
* config/cris/cris.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/mep/mep.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mips/mips.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/pa/pa.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/rs6000/rs6000.c: Ditto.
* config/rx/rx.c: Ditto.
* config/s390/s390.c: Ditto.
* config/sh/sh.c: Ditto.
* config/sh/sh_treg_combine.cc: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/mul-tables.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/mul-tables.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/vax/vax.c: Ditto.

From-SVN: r217005

9 years ago[Patch 7/7] Remove *_BY_PIECES_P
James Greenhalgh [Sat, 1 Nov 2014 10:38:42 +0000 (10:38 +0000)]
[Patch 7/7] Remove *_BY_PIECES_P

gcc/

* doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(STORE_BY_PIECES_P): Likewise.
* doc/tm.texi: Regenerate.
* system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
SET_BY_PIECES_P, STORE_BY_PIECES_P.
* expr.c (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(STORE_BY_PIECES_P): Likewise.
(can_move_by_pieces): Rewrite in terms of
targetm.use_by_pieces_infrastructure_p.
(emit_block_move_hints): Likewise.
(can_store_by_pieces): Likewise.
(store_by_pieces): Likewise.
(clear_storage_hints): Likewise.
(emit_push_insn): Likewise.
(expand_constructor): Likewise.

From-SVN: r217004

9 years ago[Patch 6/7 AArch64] Deprecate *_BY_PIECES_P, move to hookized version
James Greenhalgh [Sat, 1 Nov 2014 10:15:51 +0000 (10:15 +0000)]
[Patch 6/7 AArch64] Deprecate *_BY_PIECES_P, move to hookized version

gcc/

* config/aarch64/aarch64.c
(aarch64_use_by_pieces_infrastructre_p): New.
(TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
* config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.

From-SVN: r217003

9 years ago[Patch 5/7 mips] Deprecate *_BY_PIECES_P, move to hookized version
James Greenhalgh [Sat, 1 Nov 2014 10:14:08 +0000 (10:14 +0000)]
[Patch 5/7 mips] Deprecate *_BY_PIECES_P, move to hookized version

gcc/

* config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
(STORE_BY_PIECES_P): Likewise.
* config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
(mips_move_by_pieces_p): Rename to...
(mips_use_by_pieces_infrastructure_p): ...this, use new hook
parameters, use the default hook implementation as a
fall-back.

From-SVN: r217002

9 years ago[Patch 4/7 sh] Deprecate *_BY_PIECES_P, move to hookized version
James Greenhalgh [Sat, 1 Nov 2014 10:12:24 +0000 (10:12 +0000)]
[Patch 4/7 sh] Deprecate *_BY_PIECES_P, move to hookized version

gcc/

* config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
(sh_use_by_pieces_infrastructure_p): Likewise.
* config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
(STORE_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.

From-SVN: r217001

9 years ago[Patch 3/7 arc] Deprecate *_BY_PIECES_P, move to hookized version
James Greenhalgh [Sat, 1 Nov 2014 08:44:39 +0000 (08:44 +0000)]
[Patch 3/7 arc] Deprecate *_BY_PIECES_P, move to hookized version

gcc/

* config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
(arc_use_by_pieces_infrastructure_p): Likewise.
* confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
(CAN_MOVE_BY_PIECES): Likewise.

From-SVN: r216999

9 years ago[Patch 2/7 s390] Deprecate *_BY_PIECES_P, move to hookized version
James Greenhalgh [Sat, 1 Nov 2014 08:38:36 +0000 (08:38 +0000)]
[Patch 2/7 s390] Deprecate *_BY_PIECES_P, move to hookized version

gcc/

* config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
* config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES): Likewise.
(SET_BY_PIECES): Likewise.
(STORE_BY_PIECES): Likewise.

From-SVN: r216998

9 years ago[Patch 1/7] Hookize *_BY_PIECES_P
James Greenhalgh [Sat, 1 Nov 2014 08:13:09 +0000 (08:13 +0000)]
[Patch 1/7] Hookize *_BY_PIECES_P

gcc/

* target.def (use_by_pieces_infrastructure_p): New.
* doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
is deprecated.
(STORE_BY_PIECES_P): Likewise.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
* doc/tm.texi: Regenerate.
* expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
(STORE_BY_PIECES_P): Likewise.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(STORE_MAX_PIECES): Move to...
* defaults.h (STORE_MAX_PIECES): ...here.
* targhooks.c (get_move_ratio): New.
(default_use_by_pieces_infrastructure_p): Likewise.
* targhooks.h (default_use_by_pieces_infrastructure_p): New.
* target.h (by_pieces_operation): New.

From-SVN: r216996

9 years agoDaily bump.
GCC Administrator [Sat, 1 Nov 2014 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r216994

9 years agore PR target/63702 (i386.c:36276: possible missing break ?)
Uros Bizjak [Fri, 31 Oct 2014 21:56:05 +0000 (22:56 +0100)]
re PR target/63702 (i386.c:36276: possible missing break ?)

PR target/63702
* config/i386/i386.c (ix86_expand_args_builtin): Remove extra
assignment to 'nargs' variable.

From-SVN: r216991

9 years agore PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)
Uros Bizjak [Fri, 31 Oct 2014 21:52:22 +0000 (22:52 +0100)]
re PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)

PR target/63620
* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
* config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
be reloaded through memory.
(*pushxf): Ditto.
(*pushdf): Ditto.

From-SVN: r216990

9 years agoMake std::vector<bool> meet C++11 allocator requirements.
Jonathan Wakely [Fri, 31 Oct 2014 20:49:40 +0000 (20:49 +0000)]
Make std::vector<bool> meet C++11 allocator requirements.

* include/bits/stl_bvector.h (_Bvector_base): Use allocator_traits.
(_Bvector_base::_Bvector_impl): Use allocator's pointer type.
(_Bvector_base::_M_end_addr()): Convert to raw pointer.
(vector<bool>): Use allocator_traits and _M_end_addr. Add allocator
extended constructors.
* include/bits/vector.tcc (vector<bool>): Use allocator_traits and
_M_end_addr.
* testsuite/23_containers/vector/bool/allocator/copy.cc: New.
* testsuite/23_containers/vector/bool/allocator/minimal.cc: New.
* testsuite/23_containers/vector/bool/allocator/noexcept.cc: New.
* testsuite/23_containers/vector/bool/allocator/copy_assign.cc: New.
* testsuite/23_containers/vector/bool/allocator/move.cc: New.
* testsuite/23_containers/vector/bool/allocator/swap.cc: New.
* testsuite/23_containers/vector/bool/allocator/ext_ptr.cc: New.
* testsuite/23_containers/vector/bool/allocator/move_assign.cc: New.

From-SVN: r216988

9 years agore PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)
Uros Bizjak [Fri, 31 Oct 2014 19:47:36 +0000 (20:47 +0100)]
re PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)

PR target/63620
* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLES that won't
be reloaded through memory.
(*pushxf): Ditto.
(*pushdf): Ditto.

From-SVN: r216987

9 years agore PR rtl-optimization/63659 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
Jakub Jelinek [Fri, 31 Oct 2014 19:42:39 +0000 (20:42 +0100)]
re PR rtl-optimization/63659 (wrong code at -O2 and -O3 on x86_64-linux-gnu)

PR rtl-optimization/63659
* ree.c (update_reg_equal_equiv_notes): New function.
(combine_set_extension, transform_ifelse): Use it.

* gcc.c-torture/execute/pr63659.c: New test.

From-SVN: r216985

9 years agocontrib.texi: Add contribution notes for Balaji Iyer (Cilk+) and Jonny Grant (collect2).
Jeff Law [Fri, 31 Oct 2014 19:34:18 +0000 (13:34 -0600)]
contrib.texi: Add contribution notes for Balaji Iyer (Cilk+) and Jonny Grant (collect2).

       * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
        and Jonny Grant (collect2).

From-SVN: r216984

9 years agobuiltins.c (fold_builtin_atomic_always_lock_free): Use CONVERT_EXPR_P, CONVERT_EXPR_C...
Richard Biener [Fri, 31 Oct 2014 16:26:43 +0000 (16:26 +0000)]
builtins.c (fold_builtin_atomic_always_lock_free): Use CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where approprate.

2014-10-31  Richard Biener  <rguenther@suse.de>

* builtins.c (fold_builtin_atomic_always_lock_free): Use
CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
approprate.
(fold_builtin_expect): Likewise.
(integer_valued_real_p): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
* ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
(find_foldable_builtin_expect): Likewise.
* trans-mem.c (thread_private_new_memory): Likewise.
* tree-affine.c (aff_combination_expand): Likewise.
* tree-data-ref.c (initialize_matrix_A): Likewise.
* tree-inline.c (copy_bb): Likewise.
* tree-pretty-print.c (dump_function_name): Likewise.
(print_call_name): Likewise.
* tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
* tree-vect-generic.c (expand_vector_operations_1): Likewise.
* tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
(vect_recog_widen_mult_pattern): Likewise.
(vect_operation_fits_smaller_type): Likewise.
* tree-vrp.c (find_assert_locations_1): Likewise.
* tree-ssa-dom.c (initialize_hash_element): Canonicalize
converts to NOP_EXPR.

From-SVN: r216982

9 years ago2014-10-31 Hristian Kirtchev <kirtchev@adacore.com>
Arnaud Charlet [Fri, 31 Oct 2014 14:49:31 +0000 (15:49 +0100)]
2014-10-31  Hristian Kirtchev  <kirtchev@adacore.com>

* aspects.adb Add an entry for aspect Ghost in table
Canonical_Aspect.
* aspects.ads Add an entry for aspect Ghost in tables
Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names and
Implementation_Defined_Aspect.
* einfo.adb: Flags 277 and 278 are now in use.
(Is_Checked_Ghost_Entity): New routine.
(Is_Ghost_Entity): Removed.
(Is_Ghost_Subprogram): Removed.
(Is_Ignored_Ghost_Entity): New routine.
(Set_Is_Checked_Ghost_Entity): New routine.
(Set_Is_Ignored_Ghost_Entity): New routine.
(Write_Entity_Flags): Output flags Is_Checked_Ghost_Entity and
Is_Ignored_Ghost_Entity.
* einfo.ads: Add new flags Is_Checked_Ghost_Entity
and Is_Ignored_Ghost_Entity along with usage in nodes.
(Is_Checked_Ghost_Entity): New routine and pragma Inline.
(Is_Ghost_Entity): Removed along with synthesized flag
description and usage in nodes.
(Is_Ghost_Subprogram): Removed along with synthesized flag description
and usage in nodes.
(Is_Ignored_Ghost_Entity): New routine and pragma Inline.
(Set_Is_Checked_Ghost_Entity): New routine and pragma Inline.
(Set_Is_Ignored_Ghost_Entity): New routine and pragma Inline.
* freeze.adb (Freeze_Entity): A Ghost type cannot be effectively
volatile.
* par-prag.adb Pragma Ghost does not need special handling by
the parser.
* repinfo.adb (List_Mechanisms): Remove the entry for convention Ghost.
* sem_attr.adb (Analyze_Access_Attribute): Remove obsolete check.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Mark
the type as Ghost when its enclosing context is Ghost.
(Analyze_Incomplete_Type_Decl): Mark the type as Ghost when
its enclosing context is Ghost.
(Analyze_Number_Declaration): Mark the number as Ghost when its
enclosing context is Ghost.
(Analyze_Object_Declaration): Mark the object as Ghost when its
enclosing context is Ghost. Verify the Ghost policy between
initial declaration and completion of a deferred constant.
(Analyze_Object_Contract): A Ghost variable cannot be effectively
volatile, imported or exported.
(Build_Derived_Record_Type): Mark a type extension as Ghost when it
implements a Ghost interface.
(Build_Record_Type): Inherit volatility and "ghostness" from
the parent type.
(Check_Completion): A Ghost entity declared
in a non-Ghost package does not require completion in a body.
(Implements_Ghost_Interface): New routine.
(Process_Full_View): Inherit "ghostness" from the partial view. Verify
the Ghost policy between the partial and full views. Verify the
completion of a Ghost type extension.
* sem_ch4.adb (Check_Ghost_Subprogram_Call): Removed.
* sem_ch5.adb (Analyze_Assignment): Analyze the left hand side first.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Mark
the subprogram as Ghost when its enclosing context is Ghost.
(Analyze_Generic_Subprogram_Body): Mark the generic body as Ghost
when its enclosing context is Ghost. Verify the Ghost policy
between the spec and body.
(Analyze_Subprogram_Body_Helper): Mark the body as Ghost when its
enclosing context is Ghost. Verify the Ghost policy between the spec
and body.
(Check_Conformance): A Ghost subprogram profile and a non-Ghost
subprogram profile are not subtype conformant.
(Convention_Of): Removed.
* sem_ch7.adb (Analyze_Package_Body_Helper): Inherit the
"ghostness" from the spec. Verify the Ghost policy between
the spec and body.
(Analyze_Private_Type_Declaration): Mark the type as Ghost when its
enclosing context is Ghost.
(Requires_Completion_In_Body): New routine.
(Unit_Requires_Body): Use Requires_Completion_In_Body.
(Unit_Requires_Body_Info): Rename formal parameter P to Pack_Id, update
comment on usage and all uses of P in the body. Use
Requires_Completion_In_Body.
* sem_ch7.ads (Unit_Requires_Body): Rename formal parameter P
to Pack_Id, update comment on usage and all uses of P in the body.
* sem_ch8.adb (Analyze_Exception_Renaming): Inherit the "ghostness"
from the renamed excention.
(Analyze_Generic_Renaming): Inherit the "ghostness" from the
renamed generic subprogram.
(Analyze_Object_Renaming): Inherit the "ghostness" from the renamed
object.
(Analyze_Package_Renaming): Inherit the "ghostness" from the
renamed package.
(Analyze_Subprogram_Renaming): Inherit the "ghostness" from the
renamed subprogram.
* sem_ch11.adb (Analyze_Exception_Declaration): Mark an exception
as Ghost when its enclosing context is Ghost.
* sem_ch12.adb (Analyze_Generic_Package_Declaration,
Analyze_Generic_Subprogram_Declaration): Mark an exception as
Ghost when its enclosing context is Ghost.
(Preanalyze_Actuals): Remove obsolete check.
* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
for aspect Ghost.
(Check_Aspect_At_Freeze_Point): Aspects
Depends and Global do no need special checking at freeze point.
(Insert_After_SPARK_Mode): Update comment on usage.
* sem_mech.adb (Set_Mechanisms): Remove the entry for convention Ghost.
* sem_prag.adb Add an entry for pragma Ghost in table Sig_Flags.
(Analyze_Abstract_State): Update the grammar of the pragma. Add
formal parameter Pack_Id along with comment on usage. Mark an
abstract state as Ghost when its enclosing context is Ghost. Add
processing for option Ghost.
(Analyze_Constituent): Verify
that a Ghost abstract state is refined by Ghost constituents.
(Analyze_Pragma): "Ghost" is now a valid policy. Add checks
related to the use and placement of Check_Policy Ghost. Add
processing for pragma Ghost.
(Check_Ghost_Constituent): New routine.
(Is_Valid_Assertion_Kind): "Ghost" is now a valid assertion.
(Process_Convention): Remove obsolete check.
(Set_Convention_From_Pragma): Remove the processing for convention
Ghost.
* sem_res.adb (Check_Ghost_Context): New routine.
(Resolve_Call): Verify that a reference to a Ghost entity appears in a
suitable context. Verify the Ghost polity between point of declaration
and point of use.
(Resolve_Entity_Name): Verify that a reference to
a Ghost entity appears in a suitable context. Verify the Ghost
polity between point of declaration and point of use.
* sem_util.adb (Check_Ghost_Completion): New routine.
(Check_Ghost_Derivation): New routine.
(Incomplete_Or_Partial_View): New routine.
(Incomplete_Or_Private_View): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Statement_Or_Pragma): New routine.
(Is_Subject_To_Ghost): New routine.
(Policy_In_Effect): New routine.
(Set_Is_Ghost_Entity): New routine.
(Within_Ghost_Scope): New routine.
* sem_util.ads (Check_Ghost_Completion): New routine.
(Check_Ghost_Derivation): New routine.
(Incomplete_Or_Partial_View): New routine.
(Incomplete_Or_Private_View): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Statement_Or_Pragma): New routine.
(Is_Subject_To_Ghost): New routine.
(Policy_In_Effect): New routine.
(Set_Is_Ghost_Entity): New routine.
(Within_Ghost_Scope): New routine.
* snames.adb-tmpl (Get_Convention_Id): Remove the entry for
convention Ghost.
(Get_Convention_Name): Remove the entry for convention Ghost.
* snames.ads-tmpl Remove the convention id for Ghost. Add a
pragma id for Ghost.

2014-10-31  Sergey Rybin  <rybin@adacore.com frybin>

* gnat_ugn.texi: Add description of --RTS option for ASIS tools.

From-SVN: r216981