Joern Rennecke [Tue, 21 Oct 2014 20:12:01 +0000 (20:12 +0000)]
avr-c.c (avr_cpu_cpp_builtins): Don't define __MEMX for avrtiny.
gcc:
2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
Vidya Praveen <vidya.praveen@atmel.com>
Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
__MEMX for avrtiny.
* config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
(avr_nonconst_pointer_addrspace): Likewise.
* config/avr/avr.h (AVR_HAVE_LPM): Define.
Added AVRTINY architecture to avr target.
* config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
(base_arch_s): member added for AVRTINY architecture.
* config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
respectively. LAST_CALLEE_SAVED_REG macro added for the last register
in callee saved register list.
(avr_option_override): CCP address updated for AVRTINY.
(avr_init_expanders): tmp and zero rtx initialized as per arch.
Reset avr_have_dimode if AVRTINY.
(sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
(emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
(avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
(expand_epilogue): Likewise.
(avr_print_operand): Print CCP address in case of AVRTINY also.
<TBD>bad address
(function_arg_regno_p): Check different register list for arguments
if AVRTINY.
(init_cumulative_args): Check for AVRTINY to update number of argument
registers.
(tiny_valid_direct_memory_access_range): New function. Return false if
direct memory access range is not in accepted range for AVRTINY.
(avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
indirect load (with displacement) for AVRTINY.
(out_movqi_r_mr): Updated instruction length for AVRTINY. Call
avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
(avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
indirect load (no displacement) for AVRTINY.
(avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
indirect load (with displacement) for AVRTINY.
(avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
indirect load for pre-decrement address.
(out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
functions. Update instruction length for AVRTINY.
(avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
SImode.
(avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
(out_movsi_r_mr): Likewise, for SImode.
(avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
indirect store (no displacement) for AVRTINY.
(avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
indirect store (with displacement) for AVRTINY.
(out_movsi_mr_r): Emit out insn for IO address store. Update store
instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
store functions.
(avr_out_load_psi_reg_no_disp_tiny): New function to handle register
indirect load (no displacement) for PSImode in AVRTINY.
(avr_out_load_psi_reg_disp_tiny): New function to handle register
indirect load (with displacement) for PSImode in AVRTINY.
(avr_out_load_psi): Call PSImode register indirect load functions for
AVRTINY. Update instruction length for AVRTINY.
(avr_out_store_psi_reg_no_disp_tiny): New function to handle register
indirect store (no displacement) for PSImode in AVRTINY.
(avr_out_store_psi_reg_disp_tiny): New function to handle register
indirect store (with displacement) for PSImode in AVRTINY.
(avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
register indirect store functions for AVRTINY.
(avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
register indirect store (with displacement) for AVRTINY.
(out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
register indirect store function for QImode in AVRTINY.
(avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
(avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
indirect store (no displacement) for HImode in AVRTINY.
(avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
indirect store (with displacement) for HImode in AVRTINY.
(avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
indirect store for post-increment address in HImode.
(out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
register indirect store function for HImode in AVRTINY.
(avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
in case of AVRTINY.
(order_regs_for_local_alloc): Updated register allocation order for
AVRTINY.
(avr_conditional_register_usage): New function. It is a target hook
(TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
used registers list and register allocation order for AVRTINY.
(avr_return_in_memory): Update return value size for AVRTINY.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
for AVRTINY arch and tiny program memory base address.
* config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
(avr_texinfo): Added description for AVRTINY arch.
* config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
STATIC_CHAIN_REGNUM for AVRTINY.
* config/avr/avr-mcus.def: Added AVRTINY arch devices.
* config/avr/avr.md: Added constants for tmp/ zero registers in
AVRTINY. Attributes for AVRTINY added.
(mov<mode>): Move src/ dest address to register if it is not in AVRTINY
memory access range.
(mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
in AVRTINY memory access range.
(*mov<mode>): Likewise for HImode and SImode.
(*movsf): Likewise for SFmode.
(delay_cycles_2): Updated instructions to be emitted as AVRTINY does
not have sbiw.
* config/avr/avr-protos.h: Added function prototype for
tiny_valid_direct_memory_access_range.
* config/avr/avr-tables.opt: Regenerate.
* gcc/config/avr/t-multilib: Regenerate.
* doc/avr-mmcu.texi: Regenerate.
gcc/testsuite:
2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
* gcc.target/avr/tiny-memx.c: New test.
* gcc.target/avr/tiny-caller-save.c: New test.
libgcc:
2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
Vidya Praveen <vidya.praveen@atmel.com>
Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
* config/avr/lib1funcs.S (__do_global_dtors): Go back to descending
order.
Updated library functions for AVRTINY arch.
* config/avr/lib1funcs.S: Updated zero/tmp regs for AVRTINY.
Replaced occurrences of r0/r1 with tmp/zero reg macros.
Added wsubi/ wadi macros that expands conditionally as sbiw/ adiw
or AVRTINY equivalent. Replaced occurrences of sbiw/adiw with
wsubi/wadi macors.
(__mulsi3_helper): Update stack, preserve callee saved regs and
argument from stack. Restore callee save registers.
(__mulpsi3): Likewise.
(__muldi3, __udivmodsi4, __divmodsi4, __negsi2, __umoddi3, __udivmod64,
__moddi3, __adddi3, __adddi3_s8, __subdi3, __cmpdi2, __cmpdi2_s8,
__negdi2, __prologue_saves__, __epilogue_restores__): Excluded for
AVRTINY.
(__tablejump2__): Added lpm equivalent instructions for AVRTINY.
(__do_copy_data): Added new definition for AVRTINY.
(__do_clear_bss): Replace r17 by r18 to preserve zero reg for AVRTINY.
(__load_3, __load_4, __xload_1, __xload_2, __xload_3,
__xload_4, __movmemx_qi, __movmemx_hi): Excluded for AVRTINY.
* config/avr/lib1funcs-fixed.S: Replaced occurrences of r0/r1 with
tmp/zero reg macros. Replaced occurrences of sbiw/adiw with wsubi/wadi
macors.
* config/avr/t-avr (LIB1ASMFUNCS): Remove unsupported functions for
AVRTINY.
Fix broken long multiplication on tiny arch.
Co-Authored-By: Pitchumani Sivanupandi <pitchumani.s@atmel.com>
Co-Authored-By: Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
Co-Authored-By: Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
Co-Authored-By: Vidya Praveen <vidya.praveen@atmel.com>
From-SVN: r216525
Andrew Pinski [Tue, 21 Oct 2014 18:30:35 +0000 (18:30 +0000)]
invoke.texi (AARCH64/mtune): Document thunderx as an available option also.
2014-10-21 Andrew Pinski <apinski@cavium.com>
* doc/invoke.texi (AARCH64/mtune): Document thunderx as an
available option also.
* config/aarch64/aarch64-cost-tables.h: New file.
* config/aarch64/aarch64-cores.def (thunderx): New core.
* config/aarch64/aarch64-tune.md: Regenerate.
* config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
of config/arm/aarch-cost-tables.h.
(thunderx_regmove_cost): New variable.
(thunderx_tunings): New variable.
From-SVN: r216524
Dehao Chen [Tue, 21 Oct 2014 17:59:30 +0000 (17:59 +0000)]
Add AutoFDO.
gcc/ChangeLog:
2014-10-21 Dehao Chen <dehao@google.com>
* auto-profile.c: New file.
* auto-profile.h: New file.
* basic-block.h (maybe_hot_count_p): New export func.
(add_working_set): New export func.
* gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
(GCOV_TAG_AFDO_FUNCTION): Likewise.
(GCOV_TAG_AFDO_WORKING_SET): Likewise.
* opts.c (enable_fdo_optimizations): New func.
(common_handle_option): Handle -fauto-profile flag.
* ipa-inline.c (want_early_inline_function_p): Iterative-einline.
(class pass_early_inline): Export early_inliner.
(early_inliner): Likewise.
(pass_early_inline::execute): Likewise.
* ipa-inline.h (early_inliner): Likewise.
* predict.c (maybe_hot_count_p): New export func.
(counts_to_freqs): AutoFDO logic.
(rebuild_frequencies): Likewise.
* tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
* profile.c (add_working_set): New func.
* Makefile.in (auto-profile.o): New object file.
* passes.def (pass_ipa_auto_profile): New pass.
* tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
* tree-pass.h (make_pass_ipa_auto_profile): New pass.
* toplev.c (compile_file): AutoFDO logic.
* doc/invoke.texi (-fauto-profile): New doc.
* coverage.c (coverage_init): AutoFDO logic.
* common.opt (-fauto-profile): New flag.
* timevar.def (TV_IPA_AUTOFDO): New tag.
* value-prof.c (gimple_alloc_histogram_value): New export func.
(check_ic_target): Likewise.
* value-prof.h (gimple_alloc_histogram_value): Likewise.
(check_ic_target): Likewise.
From-SVN: r216523
David Malcolm [Tue, 21 Oct 2014 16:55:38 +0000 (16:55 +0000)]
State cleanups from jit branch
gcc/ChangeLog:
* cgraph.c (cgraph_c_finalize): New function.
* cgraph.h (cgraph_c_finalize): New prototype.
(cgraphunit_c_finalize): New prototype.
* cgraphunit.c (first_analyzed): Move from analyze_functions
to file-scope.
(first_analyzed_var): Likewise.
(analyze_functions): Move static variables into file-scope.
(cgraphunit_c_finalize): New function.
* diagnostic.c (diagnostic_finish): Free the memory for
context->classify_diagnostic and context->printer, running the
destructor for the latter.
(bt_stop): Use toplev::main.
* dwarf2out.c (dwarf2out_finalize): New function.
* dwarf2out.h (dwarf2out_c_finalize): New prototype.
* gcse.c (gcse_c_finalize): New function.
* gcse.h (gcse_c_finalize): New prototype.
* ggc-page.c (init_ggc): Make idempotent.
* input.c (input_location): Initialize to UNKNOWN_LOCATION.
* ipa-cp.c (ipa_cp_c_finalize): New function.
* ipa-prop.h (ipa_cp_c_finalize): New prototype.
* ipa-pure-const.c (function_insertion_hook_holder): Move to be
a field of class pass_ipa_pure_const.
(node_duplication_hook_holder): Likewise.
(node_removal_hook_holder): Likewise.
(register_hooks): Convert to method...
(pass_ipa_pure_const::register_hooks): ...here, converting
static variable init_p into...
(pass_ipa_pure_const::init_p): ...new field.
(pure_const_generate_summary): Update invocation of
register_hooks to invoke as a method of current_pass.
(pure_const_read_summary): Likewise.
(propagate): Convert to...
(pass_ipa_pure_const::execute): ...method.
* ipa-reference.c (ipa_init): Move static bool init_p from here
to...
(ipa_init_p): New file-scope variable, so that it can be reset
when repeatedly invoking the compiler within one process by...
(ipa_reference_c_finalize): New function.
* ipa-reference.h (ipa_reference_c_finalize): New.
* main.c (main): Replace invocation of toplev_main with
construction of a toplev instance, and call its "main" method.
* params.c (global_init_params): Add an assert that
params_finished is false.
(params_c_finalize): New.
* params.h (params_c_finalize): New.
* passes.c (execute_ipa_summary_passes): Set "current_pass" before
invoking generate_summary, for the benefit of pass_ipa_pure_const.
(ipa_write_summaries_2): Assign "pass" to "current_pass" global
before calling write_summary hook.
(ipa_write_optimization_summaries_1): Likewise when calling
write_optimization_summary hook.
(ipa_read_summaries_1): Likewise for read_summary hook.
(ipa_read_optimization_summaries_1): Likewise for
read_optimization_summary hook.
(execute_ipa_stmt_fixups): Likewise.
* stringpool.c (init_stringpool): Clean up if we're called more
than once.
* timevar.c (timevar_init): Ignore repeated calls.
* toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
"ipa-prop.h".
(general_init): Reset "input_location" to UNKNOWN_LOCATION.
(initialize_rtl): Move static local "initialized_once"
into file scope, and rename to...
(rtl_initialized): New variable.
(do_compile): Move timevar initialization from here to
toplev::start_timevars.
(toplev::toplev, toplev::~toplev, toplev::start_timevars,
toplev::finalize): New functions.
(toplev_main): Rename to...
(toplev::main): ...this.
* toplev.h (class toplev): New class.
From-SVN: r216522
Andrew MacLeod [Tue, 21 Oct 2014 16:29:55 +0000 (16:29 +0000)]
loop-doloop.c: Include loop-unroll.h.
2014-10-21 Andrew MacLeod <amacleod@redhat.com>
* loop-doloop.c: Include loop-unroll.h.
From-SVN: r216521
Joern Rennecke [Tue, 21 Oct 2014 16:24:45 +0000 (16:24 +0000)]
prog_bar.cc: Qualify size_t.
* testsuite/util/io/prog_bar.cc: Qualify size_t.
* testsuite/util/io/prog_bar.hpp: Likewise.
* testsuite/util/io/verified_cmd_line_input.hpp: Likewise.
From-SVN: r216520
Ian Lance Taylor [Tue, 21 Oct 2014 16:00:50 +0000 (16:00 +0000)]
compiler: Remove obsolete hidden_fields_are_ok code.
The language used to forbid assigning structs with hidden
fields, but that was changed before the Go 1 release. At the
time the change was experimental, so I left the old code in
the compiler. At this point it's clearly not experimental, so
this removes the unused code.
From-SVN: r216519
Andrew MacLeod [Tue, 21 Oct 2014 15:17:12 +0000 (15:17 +0000)]
cfg.h: New.
2014-10-21 Andrew MacLeod <amacleod@redhat.com>
* cfg.h: New. Header file for cfg.c.
* cfganal.h: New. Header file for cfganal.c.
* lcm.h: New. Header file for lcm.c.
* loop-unroll.h: New. Header file for loop-unroll.h.
* cfgloop.h: (unroll_loops): Remove prototype.
* basic-block.h: Move prototypes and structs to new header files.
Include cfg.h, cfganal.h, and lcm.h.
* loop-init.c: Include loop-unroll.h.
* loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
* modulo-sched.c: Include loop-unroll.h.
From-SVN: r216518
Jiong Wang [Tue, 21 Oct 2014 14:41:01 +0000 (14:41 +0000)]
[ARM] Update testcases for GNU11
2014-10-21 Jiong Wang <jiong.wang@arm.com>
* gcc.target/arm/
20031108-1.c (Proc_7): Add explicit declaration.
(Proc_1): Add return type.
* gcc.target/arm/cold-lc.c (show_stack): Add explict declaration.
* gcc.target/arm/neon-modes-2.c (foo): Likewise.
* gcc.target/arm/pr43920-2.c (lseek): Likewise.
* gcc.target/arm/pr44788.c (foo): Likewise.
* gcc.target/arm/pr55642.c (abs): Likewise.
* gcc.target/arm/pr58784.c (f): Likewise.
* gcc.target/arm/pr60650.c (foo1, foo2): Likewise.
* gcc.target/arm/vfp-ldmdbs.c (bar): Likewise.
* gcc.target/arm/vfp-ldmias.c (bar): Likewise.
* gcc.target/arm/pr60650-2.c (fn1, fn2): Add return type and add type
for local variables.
* lib/target-supports.exp
(check_effective_target_arm_crypto_ok_nocache): Add declaration for
vaeseq_u8.
(check_effective_target_arm_neon_fp16_ok_nocache): Add declaration for
vcvt_f16_f32.
(check_effective_target_arm_neonv2_ok_nocache): Add declaration for
vfma_f32.
* gcc.target/arm/pr51968.c: Add -Wno-implicit-function-declaration.
From-SVN: r216517
Paolo Carlini [Tue, 21 Oct 2014 14:14:06 +0000 (14:14 +0000)]
parser.c (cp_parser_unary_expression): Add default arguments.
2014-10-21 Paolo Carlini <paolo.carlini@oracle.com>
* parser.c (cp_parser_unary_expression): Add default arguments.
(cp_parser_cast_expression, cp_parser_sizeof_operand,
cp_parser_omp_atomic): Adjust.
From-SVN: r216516
Ville Voutilainen [Tue, 21 Oct 2014 13:10:51 +0000 (16:10 +0300)]
Implement more Library Fundamentals v1 variable templates.
2014-10-21 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement more Library Fundamentals v1 variable templates.
* include/Makefile.am: Add ratio, chrono and system_error.
* include/Makefile.in: Regenerate.
* include/experimental/chrono: New.
* include/experimental/ratio: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple (tuple_size_v): Likewise.
* testsuite/experimental/chrono/value.cc: Likewise.
* testsuite/experimental/ratio/value.cc: Likewise.
* testsuite/experimental/system_error/value.cc: Likewise.
* testsuite/experimental/tuple/tuple_size.cc: Likewise.
From-SVN: r216513
Andreas Schwab [Tue, 21 Oct 2014 12:55:30 +0000 (12:55 +0000)]
* gcc.dg/bf-spl1.c (main): Fix implicit int.
From-SVN: r216512
Thomas Preud'homme [Tue, 21 Oct 2014 12:38:36 +0000 (12:38 +0000)]
tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of MARKER_BYTE_UNKNOWN markers when handling casts.
2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
MARKER_BYTE_UNKNOWN markers when handling casts.
gcc/testsuite/
* gcc.dg/optimize-bswaphi-1.c: New bswap pass test.
From-SVN: r216511
Richard Biener [Tue, 21 Oct 2014 12:31:52 +0000 (12:31 +0000)]
tree-ssa-phiopt.c (value_replacement): Properly verify we are the non-singleton PHI.
2014-10-21 Richard Biener <rguenther@suse.de>
* tree-ssa-phiopt.c (value_replacement): Properly verify we
are the non-singleton PHI.
From-SVN: r216510
Richard Biener [Tue, 21 Oct 2014 12:30:18 +0000 (12:30 +0000)]
devirt-42.C: Fix dump scanning routines.
2014-10-21 Richard Biener <rguenther@suse.de>
* g++.dg/ipa/devirt-42.C: Fix dump scanning routines.
* g++.dg/ipa/devirt-46.C: Likewise.
* g++.dg/ipa/devirt-47.C: Likewise.
* g++.dg/tree-prof/pr35545.C: Likewise.
From-SVN: r216509
Jakub Jelinek [Tue, 21 Oct 2014 12:23:11 +0000 (14:23 +0200)]
re PR tree-optimization/63563 (ICE: in vectorizable_store, at tree-vect-stmts.c:5106 with -mavx2)
PR tree-optimization/63563
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
if either dra or drb stmts are not normal loads/stores.
* gcc.target/i386/pr63563.c: New test.
From-SVN: r216507
Jonathan Wakely [Tue, 21 Oct 2014 12:13:43 +0000 (13:13 +0100)]
Fix date of last ChangeLog entry.
From-SVN: r216506
Uros Bizjak [Tue, 21 Oct 2014 10:58:26 +0000 (12:58 +0200)]
inclhack.def (glibc_c99_inline_4): Add pthread.h to files.
* inclhack.def (glibc_c99_inline_4): Add pthread.h to files.
* fixincl.x: Regenerate.
From-SVN: r216505
Ilya Tocar [Tue, 21 Oct 2014 09:51:49 +0000 (09:51 +0000)]
i386.c (expand_vec_perm_1): Fix expand_vec_perm_palignr case.
* config/i386/i386.c (expand_vec_perm_1): Fix
expand_vec_perm_palignr case.
* config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
VI1_AVX512.
From-SVN: r216504
Francois-Xavier Coudert [Tue, 21 Oct 2014 08:59:17 +0000 (08:59 +0000)]
re PR libquadmath/55821 (Release tarballs (unconditionally) install libquadmath.info when libquadmath is not supported)
PR libquadmath/55821
* Makefile.am: Unconditionally define libquadmath_TEXINFOS.
* Makefile.in: Regenerate.
From-SVN: r216503
Kirill Yukhin [Tue, 21 Oct 2014 07:58:54 +0000 (07:58 +0000)]
Revert r216483.
From-SVN: r216502
Zhenqiang Chen [Tue, 21 Oct 2014 03:38:37 +0000 (03:38 +0000)]
cfgloopanal.c (seq_cost): Delete.
2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
* cfgloopanal.c (seq_cost): Delete.
* rtl.h (seq_cost): New prototype.
* rtlanal.c (seq_cost): New function.
* tree-ssa-loop-ivopts.c (seq_cost): Delete.
From-SVN: r216501
GCC Administrator [Tue, 21 Oct 2014 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r216500
Ian Lance Taylor [Mon, 20 Oct 2014 19:12:44 +0000 (19:12 +0000)]
compiler, runtime: Add type information to single object allocation.
From-SVN: r216490
Ian Lance Taylor [Mon, 20 Oct 2014 18:04:55 +0000 (18:04 +0000)]
reflect: allocate correct type in assignTo and cvtT2I
Backport https://codereview.appspot.com/
155450044 from the
master Go library. Original description:
I came across this while debugging a GC problem in gccgo.
There is code in assignTo and cvtT2I that handles assignment
to all interface values. It allocates an empty interface even
if the real type is a non-empty interface. The fields are
then set for a non-empty interface, but the memory is recorded
as holding an empty interface. This means that the GC has
incorrect information.
This is extremely unlikely to fail, because the code in the GC
that handles empty interfaces looks like this:
obj = nil;
typ = eface->type;
if(typ != nil) {
if(!(typ->kind&KindDirectIface) || !(typ->kind&KindNoPointers))
obj = eface->data;
In the current runtime the condition is always true--if
KindDirectIface is set, then KindNoPointers is clear--and we
always want to set obj = eface->data. So the question is what
happens when we incorrectly store a non-empty interface value
in memory marked as an empty interface. In that case
eface->type will not be a *rtype as we expect, but will
instead be a pointer to an Itab. We are going to use this
pointer to look at a *rtype kind field. The *rtype struct
starts out like this:
type rtype struct {
size uintptr
hash uint32 // hash of type; avoids computation in hash tables
_ uint8 // unused/padding
align uint8 // alignment of variable with this type
fieldAlign uint8 // alignment of struct field with this type
kind uint8 // enumeration for C
An Itab always has at least two pointers, so on a
little-endian 64-bit system the kind field will be the high
byte of the second pointer. This will normally be zero, so
the test of typ->kind will succeed, which is what we want.
On a 32-bit system it might be possible to construct a failing
case by somehow getting the Itab for an interface with one
method to be immediately followed by a word that is all ones.
The effect would be that the test would sometimes fail and the
GC would not mark obj, leading to an invalid dangling
pointer. I have not tried to construct this test.
I noticed this in gccgo, where this error is much more likely
to cause trouble for a rather random reason: gccgo uses a
different layout of rtype, and in gccgo the kind field happens
to be the low byte of a pointer, not the high byte.
From-SVN: r216489
Jason Merrill [Mon, 20 Oct 2014 17:29:02 +0000 (13:29 -0400)]
re PR c++/63601 (Segfault on usage of 'this' in unevaluated context inside lambda)
PR c++/63601
* lambda.c (current_nonlambda_function): New.
* semantics.c (finish_this_expr): Use it.
* cp-tree.h: Declare it.
From-SVN: r216488
Arnaud Charlet [Mon, 20 Oct 2014 17:17:12 +0000 (19:17 +0200)]
[multiple changes]
2014-10-20 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch3.adb (Build_Derived_Private_Type): When the parent
is untagged and has discriminants, build the implicit full
view even if the derived type is a completion, and make it
the Underlying_Full_View of the type.
(Copy_And_Build): Fix Is_Completion actual parameter in the calls to
Build_Derived_Type.
(Build_Derived_Record_Type): Likewise.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb: Add guard to convention setting.
From-SVN: r216487
Andrew MacLeod [Mon, 20 Oct 2014 15:30:50 +0000 (15:30 +0000)]
cfgrtl.h: New.
2014-10-20 Andrew MacLeod <amacleod@redhat.com>
* cfgrtl.h: New. Add prototypes for cfgrtl.c.
* basic-block.h: Remove prototypes for cfgrtl.c.
* cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
prototypes to cfgrtl.h.
* profile.h (profile_info): Add extern export declaration.
* rtl.h: Remove prototypes for cfgrtl.h.
* tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
* ipa-inline.c: Include profile.h.
* loop-unroll.c: Ditto.
* modulo-sched.c: Ditto.
* postreload-gcse.c: Ditto.
* predict.c: Ditto.
* sched-ebb.c: Ditto.
* sched-rgn.c: Ditto.
* tracer.c: Ditto.
* tree-ssa-loop-ivcanon.c: Ditto.
From-SVN: r216485
Igor Zamyatin [Mon, 20 Oct 2014 15:22:09 +0000 (15:22 +0000)]
re PR c/63307 (Cilk+ breaks -fcompare-debug bootstrap)
PR c/63307
gcc/c-family/
* cilk.c: Include vec.h.
(struct cilk_decls): New structure.
(wrapper_parm_cb): Split this function to...
(fill_decls_vec): ...this...
(create_parm_list): ...and this.
(compare_decls): New function.
(for_local_cb): Remove.
(wrapper_local_cb): Ditto.
(build_wrapper_type): For now first traverse and fill vector of
declarations then sort it and then deal with sorted vector.
(cilk_outline): Ditto.
(declare_one_free_variable): Ditto.
From-SVN: r216483
Arnaud Charlet [Mon, 20 Oct 2014 15:06:52 +0000 (17:06 +0200)]
[multiple changes]
2014-10-20 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor
reformatting.
2014-10-20 Robert Dewar <dewar@adacore.com>
* par-prag.adb (Add_List_Pragma_Entry): New procedure.
* par.adb (P_Pragma): Document requirement to handle multiple calls.
2014-10-20 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
Fix error of bad inheritance of this pragma from with'ed unit.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype,
inherit convention from parent type, because the subtype may
have been declared on a partial view, prior to the pragma on
the parent.
2014-10-20 Olivier Hainque <hainque@adacore.com>
Tristan Gingold <gingold@adacore.com>
* gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7.
Misc clean ups.
2014-10-20 Nicolas Roche <roche@adacore.com>
* gcc-interface/Make-lang.in: ensure that automatically generated
dependency are referencing generated gnatvsn rather than original
one.
From-SVN: r216482
Gary Dismukes [Mon, 20 Oct 2014 14:34:37 +0000 (14:34 +0000)]
gnat_ugn.texi: Minor reformatting.
2014-10-20 Gary Dismukes <dismukes@adacore.com>
* gnat_ugn.texi: Minor reformatting.
* sem_ch3.adb: Minor reformatting.
From-SVN: r216480
Arnaud Charlet [Mon, 20 Oct 2014 14:32:17 +0000 (16:32 +0200)]
[multiple changes]
2014-10-20 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New project level attribute Runtime.
* prj-conf.adb (Get_Project_Runtimes): New procedure to get
the attributes Runtime declared in the main project, to use
in auto-configuration.
(Get_Or_Create_Configuration_File): Call Get_Project_Runtimes.
* prj-proc.adb (Runtime_Defaults): New table to store
the default values of attributes Runtime (<language>).
(Set_Default_Runtime_For): New procedure to store the default
value of a Runtime (<language>) in table Runtime_Defaults.
(Expression): Use the value stored in table Runtime_Defaults as
the default for Runtime (<language>).
* prj-proc.ads (Set_Default_Runtime_For): New procedure.
* prj.ads (Attribute_Default_Value): New enumerated value
Runtime_Value.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): If the type is
an unconstrained unchecked_union type, rewrite declaration
as a renaming to prevent attempt to retrieve non- existent
discriminants from expression.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* gnat_ugn.texi: Minor reformatting.
From-SVN: r216479
Arnaud Charlet [Mon, 20 Oct 2014 14:27:24 +0000 (16:27 +0200)]
[multiple changes]
2014-10-20 Tristan Gingold <gingold@adacore.com>
* init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on
arm-darwin.
* raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for
unused arguments.
2014-10-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_attr.adb (Analyze_Attribute): Replace
variables CS and PS with Proc_Id and Subp_Id to better illustrate
their purpose. Account for the case where _Postconditions
has not been generated yet and the context is aspect/pragma
Refined_Post. In that scenario the expected prefix of attribute
'Result is the current scope.
2014-10-20 Robert Dewar <dewar@adacore.com>
* par-ch4.adb (P_Expression): Handle extraneous comma/semicolon
in middle of expression with logical operators.
2014-10-20 Robert Dewar <dewar@adacore.com>
* par-ch13.adb (Possible_Misspelled_Aspect): New function.
2014-10-20 Steve Baird <baird@adacore.com>
* pprint.adb: Improve Expression_Image function.
From-SVN: r216477
Robert Dewar [Mon, 20 Oct 2014 14:24:15 +0000 (14:24 +0000)]
gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.
2014-10-20 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.
* snames.ads-tmpl: Add entry for pragma No_Tagged_Streams.
* aspects.ads, aspects.adb: Add aspect No_Tagged_Streams.
* einfo.adb (No_Tagged_Streams_Pragma): New field.
* einfo.ads: Minor reformatting (reorder entries).
(No_Tagged_Streams_Pragma): New field.
* exp_ch3.adb: Minor comment update.
* opt.ads (No_Tagged_Streams): New variable.
* par-prag.adb: Add dummy entry for pragma No_Tagged_Streams.
* sem.ads (Save_No_Tagged_Streams): New field in scope record.
* sem_attr.adb (Check_Stream_Attribute): Check stream ops
prohibited by No_Tagged_Streams.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Set
No_Tagged_Streams_Pragma.
(Analyze_Subtype_Declaration): ditto.
(Build_Derived_Record_Type): ditto.
(Record_Type_Declaration): ditto.
* sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams.
(Push_Scope): Save No_Tagged_Streams.
* sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new
pragma.
From-SVN: r216476
Arnaud Charlet [Mon, 20 Oct 2014 14:22:09 +0000 (16:22 +0200)]
[multiple changes]
2014-10-20 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads,
sem_ch13.adb: Minor reformatting.
2014-10-20 Javier Miranda <miranda@adacore.com>
* exp_ch3.adb (Expand_N_Object_Declaration): Expand the
declaration of a class-wide limited object containing an
initializing expression into a renaming declaration. Required to
avoid passing such declaration to the backend and also to avoid
generating an extra copy.
From-SVN: r216475
Arnaud Charlet [Mon, 20 Oct 2014 14:17:37 +0000 (16:17 +0200)]
[multiple changes]
2014-10-20 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (List_Inlining_Info): Minor tweaks.
(Add_Inlined_Body): Inline the enclosing package
if it is not internally generated, even if it doesn't come
from source.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Process_Function_Call): If the first actual
denotes a discrete type, the mode must be interpreted as a slice
of an array returned by a parameterless call.
2014-10-20 Vasiliy Fofanov <fofanov@adacore.com>
* prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit
searching for runtime referenced by a simple name on a project path.
2014-10-20 Olivier Hainque <hainque@adacore.com>
* vxworks-x86-link.spec: New file.
* system-vxworks-x86.ads: Add pragma Linker_Options to link with
vxworks-x86-link.spec.
2014-10-20 Vincent Celier <celier@adacore.com>
* opt.ads (Origin_Of_Target): New type.
(Target_Origin): New variable.
* prj-conf.adb (Parse_Project_And_Apply_Config): Record
Target_Value and Target_Origin. If target was not specified
on the command line with --target=, check if attribute Target
is declared in the main project. If it is and it is not the
native target, parse again the projects so that 'Target get
the new value. Fail if the target has changed again. Invoke
Process_Project_And_Apply_Config with Do_Phase_1 set to False
is Process_Project_Tree_Phase_1 has already been invoked.
* prj-conf.ads (Process_Project_And_Apply_Config): New Boolean
parameter Do_Phase_1, defaulted to True.
* prj-proc.adb (Expression): Check the special values and
defaults for attribute Target.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze
the subprogram spec of the body in full, because it will be
reanalyzed when the declaration itself is analyzed; otherwise. a
formal may end up duplicated in the list of formals leading to
spurious conformance errors with an existing declaration.
From-SVN: r216473
Ed Schonberg [Mon, 20 Oct 2014 14:13:02 +0000 (14:13 +0000)]
sem_ch13.adb: Improve error recovery on illegal aspect.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb: Improve error recovery on illegal aspect.
From-SVN: r216472
Arnaud Charlet [Mon, 20 Oct 2014 14:11:43 +0000 (16:11 +0200)]
[multiple changes]
2014-10-20 Arnaud Charlet <charlet@adacore.com>
* set_targ.adb (Write_Target_Dependent_Values, Write_Line):
Fix calling C APIs with no trailing NUL char by calling better
wrappers instead.
2014-10-20 Tristan Gingold <gingold@adacore.com>
* gnat_ugn.texi: Document that gdb users must be in group
_developer on mac os.
2014-10-20 Arnaud Charlet <charlet@adacore.com>
* a-tgdico.ads: Fix typo.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* exp_aggr.adb (Convert_To_Assignments): Do not create a
transient scope for a component whose type requires it, if the
context is an initialization procedure, because the target of
the assignment must be visible outside of the block.
2014-10-20 Tristan Gingold <gingold@adacore.com>
* tracebak.c: Define PC_ADJUST for arm-darwin.
* env.c: Remove darwin specific code.
* raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.
2014-10-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
is incomplete rather than private, and full type declaration
has aspects, analyze aspects on the full view rather than
the incomplete view, to prevent freezing anomalies with the
class-wide type.
From-SVN: r216470
Richard Biener [Mon, 20 Oct 2014 12:44:32 +0000 (12:44 +0000)]
slsr-19.c: Make robust against operand order changes.
2014-10-20 Richard Biener <rguenther@suse.de>
* gcc.dg/tree-ssa/slsr-19.c: Make robust against operand order changes.
* gcc.dg/tree-ssa/reassoc-20.c: Likewise.
From-SVN: r216465
Jonathan Wakely [Mon, 20 Oct 2014 12:34:10 +0000 (13:34 +0100)]
Makefile.am: Move ctype.cc, ctype_configure_char.cc and ctype_members.cc to ...
* src/c++98/Makefile.am: Move ctype.cc, ctype_configure_char.cc and
ctype_members.cc to ...
* src/c++11/Makefile.am: Here.
* src/c++98/Makefile.in: Regenerate.
* src/c++11/Makefile.in: Regenerate.
* src/c++98/ctype.cc: Move file to ...
* src/c++11/ctype.cc: Here, define ctype_base::blank.
* config/abi/pre/gnu.ver: Export ctype_base::blank.
* config/locale/generic/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Handle blank. Update comments.
* config/locale/gnu/ctype_members.cc
(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
* config/os/aix/ctype_base.h (ctype_base::blank): Declare.
* config/os/bionic/ctype_base.h (ctype_base::blank): Likewise.
* config/os/bsd/darwin/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/darwin/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/dragonfly/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/dragonfly/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/freebsd/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/freebsd/ctype_inline.h (ctype<char>::is): Use blank.
(ctype<wchar_t::do_is): Likewise.
* config/os/bsd/netbsd/ctype_base.h (ctype_base::blank): Declare.
* config/os/bsd/openbsd/ctype_base.h (ctype_base::blank): Likewise.
* config/os/djgpp/ctype_base.h (ctype_base::blank): Likewise.
* config/os/generic/ctype_base.h (ctype_base::blank): Declare.
* config/os/generic/ctype_inline.h (ctype<char>::is): Use blank.
* config/os/gnu-linux/ctype_base.h (ctype_base::blank): Declare.
* config/os/hpux/ctype_base.h (ctype_base::blank): Likewise.
* config/os/mingw32-w64/ctype_base.h (ctype_base::blank): Declare.
* config/os/mingw32-w64/ctype_configure_char.cc
(ctype<char>::classic_table()): Set blank bit for space and tab.
* config/os/mingw32/ctype_base.h (ctype_base::blank): Declare.
* config/os/mingw32/ctype_configure_char.cc
(ctype<char>::classic_table()): Set blank bit for space and tab.
* config/os/newlib/ctype_base.h (ctype_base::blank): Declare.
* config/os/qnx/qnx6.1/ctype_base.h (ctype_base::blank): Likewise.
* config/os/solaris/solaris2.10/ctype_base.h (ctype_base::blank):
Likewise.
* config/os/tpf/ctype_base.h (ctype_base::blank): Likewise.
* config/os/uclibc/ctype_base.h (ctype_base::blank): Likewise.
* config/os/vxworks/ctype_base.h (ctype_base::blank): Likewise.
* include/bits/locale_facets.h (isblank): Define.
* include/bits/localefwd.h (isblank): Declare.
* testsuite/22_locale/classification/isblank.cc: New.
* testsuite/22_locale/ctype_base/blank.cc: New.
From-SVN: r216464
Richard Biener [Mon, 20 Oct 2014 12:28:10 +0000 (12:28 +0000)]
tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping operands to get a def operand kind match.
2014-10-20 Richard Biener <rguenther@suse.de>
* tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
operands to get a def operand kind match. Signal mismatches
to the parent so we can try swapping its operands.
(vect_build_slp_tree): Try swapping operands if they have
a mismatched operand kind.
From-SVN: r216463
Alan Modra [Mon, 20 Oct 2014 11:54:22 +0000 (22:24 +1030)]
re PR debug/60655 (ICE: output_operand: invalid expression as operand)
PR debug/60655
* simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
Increase "ops" array size. Correct array size tests. Init
n_constants in loop. Break out of innermost loop when finding
a trivial CONST expression.
From-SVN: r216462
Martin Liska [Mon, 20 Oct 2014 10:44:54 +0000 (12:44 +0200)]
re PR tree-optimization/63583 (ICF does not check that the template strings are the same)
PR ipa/63583
* ipa-icf-gimple.c (func_checker::compare_gimple_asm):
Gimple tempate string is compared.
* gcc.dg/ipa/pr63595.c: New test.
From-SVN: r216458
Uros Bizjak [Mon, 20 Oct 2014 09:21:09 +0000 (11:21 +0200)]
varasm.c (const_alias_set): Remove.
* varasm.c (const_alias_set): Remove.
(init_varasm_once): Remove initialization of const_alias_set.
(build_constant_desc): Do not set alias set to const_alias_set.
From-SVN: r216454
Janne Blomqvist [Mon, 20 Oct 2014 07:53:37 +0000 (10:53 +0300)]
PR 63589 Fix splitting of PATH in find_addr2line.
2014-10-20 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/63589
* configure.ac: Check for strtok_r.
* runtime/main.c (gfstrtok_r): Fallback implementation of
strtok_r.
(find_addr2line): Use strtok_r to split PATH.
* config.h.in: Regenerated.
* configure: Regenerated.
From-SVN: r216449
GCC Administrator [Mon, 20 Oct 2014 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r216447
Maxim Kuvyrkov [Sun, 19 Oct 2014 21:07:29 +0000 (21:07 +0000)]
Fix race in libstdc++ testsuite
* testsuite/lib/libstdc++.exp (v3-copy-file): New proc split from ...
(v3-copy-files): ... this. Update.
(check_v3_target_fileio): Fix race on cin_unget-1.txt file.
From-SVN: r216444
Francois-Xavier Coudert [Sun, 19 Oct 2014 20:49:27 +0000 (20:49 +0000)]
re PR fortran/48979 (FRACTION und EXPONENT return invalid results for infinity/NaN)
PR fortran/48979
* trans-const.c (gfc_build_nan): New function.
* trans-const.h (gfc_build_nan): New prototype.
* trans-intrinsic.c (gfc_conv_intrinsic_exponent): Handle special
values.
(gfc_conv_intrinsic_minmaxval): Use gfc_build_nan.
(gfc_conv_intrinsic_fraction): Handle special values.
(gfc_conv_intrinsic_spacing): Likewise.
(gfc_conv_intrinsic_rrspacing): Likewise.
(gfc_conv_intrinsic_set_exponent): Likewise.
* gfortran.dg/ieee/intrinsics_2.F90: New test.
From-SVN: r216443
Ilya Verbin [Sun, 19 Oct 2014 19:40:59 +0000 (19:40 +0000)]
Set SECTION_EXCLUDE flag for LTO sections.
gcc/
* configure: Regenerate.
* configure.ac: Move the test for section attribute specifier "e" in GAS
out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
* langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
* varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
ifdef HAVE_GAS_SECTION_EXCLUDE.
From-SVN: r216442
Andreas Schwab [Sun, 19 Oct 2014 17:47:29 +0000 (17:47 +0000)]
md.texi (RTL Template): Correct equivalent match_operand expression.
* doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
match_operand expression.
From-SVN: r216441
Marek Polacek [Sun, 19 Oct 2014 16:47:35 +0000 (16:47 +0000)]
re PR c/63567 (Linux kernel build error due to non-static initializers)
PR c/63567
* c-typeck.c (output_init_element): Allow initializing objects with
static storage duration with compound literals even in C99 and add
pedwarn for it.
* gcc.dg/pr63567-3.c: New test.
* gcc.dg/pr63567-4.c: New test.
From-SVN: r216440
Adhemerval Zanella [Sun, 19 Oct 2014 13:49:26 +0000 (13:49 +0000)]
rs6000.c (rs6000_atomic_assign_expand_fenv): New function.
2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
function.
(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
* gcc.dg/atomic/c11-atomic-exec-5.c
(test_main_long_double_add_overflow): Define and run only for
LDBL_MANT_DIG != 106.
(test_main_complex_long_double_add_overflow): Likewise.
(test_main_long_double_sub_overflow): Likewise.
(test_main_complex_long_double_sub_overflow): Likewise.
Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
From-SVN: r216437
GCC Administrator [Sun, 19 Oct 2014 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r216432
Manuel López-Ibáñez [Sat, 18 Oct 2014 16:10:25 +0000 (16:10 +0000)]
invoke.texi (Options to Request or Suppress Warnings): Explain options precedence.
2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
* doc/invoke.texi (Options to Request or Suppress Warnings):
Explain options precedence.
(Wtrampolines): Do not indent paragraph.
From-SVN: r216429
John David Anglin [Sat, 18 Oct 2014 15:53:59 +0000 (15:53 +0000)]
invoke.texi: Update documentation of hppa -mjump-in-delay option.
* doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
* config/pa/pa-protos.h (pa_following_call): Delete declaration.
(pa_jump_in_call_delay): Likewise.
* config/pa/pa.c (pa_option_override): Remove jump in call delay
override.
(pa_output_millicode_call): Remove support for jump in call delay.
(pa_output_call): Likewise.
(pa_jump_in_call_delay): Delete.
(pa_following_call): Likewise.
* config/pa/pa.md (in_call_delay): Remove jump in delay check.
(uncond_branch): Remove following call check from attribute length.
From-SVN: r216428
Paul Thomas [Sat, 18 Oct 2014 14:35:51 +0000 (14:35 +0000)]
re PR fortran/63553 ([OOP] Wrong code when assigning a CLASS to a TYPE)
2014-10-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/63553
* resolve.c (resolve_ordinary_assign): Add data component to
rvalue expression for class to type assignment.
2014-10-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/63553
* gfortran.dg/class_to_type_3.f03 : New test
From-SVN: r216427
Oleg Endo [Sat, 18 Oct 2014 12:07:35 +0000 (12:07 +0000)]
pr58314.c: Fix excess failures caused by switch to GNU11.
gcc/testsuite/
* gcc.target/sh/torture/pr58314.c: Fix excess failures caused by switch
to GNU11.
From-SVN: r216426
Oleg Endo [Sat, 18 Oct 2014 11:48:05 +0000 (11:48 +0000)]
attr-isr.c: Move SH specific test to ...
gcc/testsuite/
* gcc.dg/attr-isr.c: Move SH specific test to ...
* gcc.target/sh/attr-isr.c: ... here.
From-SVN: r216425
Oleg Endo [Sat, 18 Oct 2014 10:51:08 +0000 (10:51 +0000)]
re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
gcc/
PR target/53513
* config/sh/sh-modes.def (PSI): Remove.
* config/sh/sh-protos.h (get_fpscr_rtx): Remove.
* config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
(sh_reorg): Remove commented out FPSCR code.
(fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
insn instead of move insn.
(sh_hard_regno_mode_ok): Return SImode for FPSCR.
(sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
handling.
(sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
(sh1_builtin_p): Uncomment.
(SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
(bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
* config/sh/sh/predicates.md (fpscr_operand): Simplify.
(fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
(general_movsrc_operand, general_movdst_operand): Disallow
fpscr_operand.
* config/sh/sh.md (FPSCR_FR): New constant.
(push_fpscr): Emit sts_fpscr insn.
(pop_fpscr): Emit lds_fpscr_insn.
(movsi_ie): Disallow FPSCR operands.
(fpu_switch, unnamed related split, extend_psi_si,
truncate_si_psi): Remove insns.
(lds_fpscr, sts_fpscr): New insns.
(toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
From-SVN: r216424
Ian Lance Taylor [Sat, 18 Oct 2014 00:41:42 +0000 (00:41 +0000)]
compiler: Don't allow tuple assignments to contain duplicate symbols.
Fixes issue 8436.
From-SVN: r216420
GCC Administrator [Sat, 18 Oct 2014 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r216419
Marek Polacek [Fri, 17 Oct 2014 21:02:54 +0000 (21:02 +0000)]
re PR c/63567 (Linux kernel build error due to non-static initializers)
PR c/63567
* c-typeck.c (digest_init): Allow initializing objects with static
storage duration with compound literals even in C99 and add pedwarn
for it.
* gcc.dg/pr61096-1.c: Change dg-error into dg-warning.
* gcc.dg/pr63567-1.c: New test.
* gcc.dg/pr63567-2.c: New test.
From-SVN: r216416
Eric Botcazou [Fri, 17 Oct 2014 19:53:18 +0000 (19:53 +0000)]
ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
* ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
(clone_inlined_nodes): Do not overwrite the clone if above predicate
returns true.
From-SVN: r216415
Marek Polacek [Fri, 17 Oct 2014 18:53:35 +0000 (18:53 +0000)]
re PR c/63543 (incomplete type error should suppress duplicates)
PR c/63543
* c-tree.h (C_TYPE_ERROR_REPORTED): Define.
* c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
error multiple times. Print the type.
* gcc.dg/pr63543.c: New test.
* gcc.dg/array-8.c: Remove dg-error.
* gcc.dg/pr48552-1.c: Remove and adjust dg-error.
* gcc.dg/pr48552-2.c: Likewise.
From-SVN: r216414
Marek Polacek [Fri, 17 Oct 2014 18:42:27 +0000 (18:42 +0000)]
re PR c/63549 ([4.8/4.9/5] ICE in build_array_ref with invalid code)
PR c/63549
* c-typeck.c (build_array_ref): Bail if the index in an incomplete
type.
* gcc.dg/pr63549.c: New test.
From-SVN: r216413
Marek Polacek [Fri, 17 Oct 2014 18:37:25 +0000 (18:37 +0000)]
c-opts.c (c_common_post_options): Set warn_implicit_int.
c-family/
* c-opts.c (c_common_post_options): Set warn_implicit_int.
* c.opt (Wimplicit-int): Initialize to -1.
c/
* c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
(start_function): Use OPT_Wimplicit_int instead of 0.
(store_parm_decls_oldstyle): Likewise.
testsuite/
* gcc.dg/Wimplicit-int-1.c: New test.
* gcc.dg/Wimplicit-int-2.c: New test.
* gcc.dg/Wimplicit-int-3.c: New test.
* gcc.dg/Wimplicit-int-4.c: New test.
From-SVN: r216412
Ilya Tocar [Fri, 17 Oct 2014 15:11:51 +0000 (15:11 +0000)]
AVX512. 63.1 Update permute expanding.
gcc/
2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
* config/i386/i386.c (MAX_VECT_LEN): Move earlier.
(expand_vec_perm_d): Ditto.
(ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
V4DFmode.
(ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
(ix86_expand_sse_unpack): Handle V64QImode.
(expand_vec_perm_blend): Update conditions for TARGET, handle
V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
(expand_vec_perm_pshufb): Handle V64QImode.
(expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
(ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
(ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
(ix86_expand_vecop_qihi): Handle V64QImode.
* config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
(define_mode_iterator VEC_PERM_AVX2): Add V32HI.
(define_mode_iterator VEC_PERM_CONST): Add V32HI.
(define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
(mul<mode>3): Use VI1_AVX512.
(<sse2_avx2>_packsswb): Ditto.
(<sse2_avx2>_packuswb): Ditto.
(<ssse3_avx2>_pshufb<mode>3): Ditto.
(<shift_insn><mode>3): Ditto.
From-SVN: r216405
Kirill Yukhin [Fri, 17 Oct 2014 14:32:26 +0000 (14:32 +0000)]
Fix bootstrap failure.
gcc/
* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
conditions to fix bootstrap.
From-SVN: r216403
Andrew MacLeod [Fri, 17 Oct 2014 13:21:52 +0000 (13:21 +0000)]
gcc-plugin.h: Add tm.h and flattened includes from function.h.
2014-10-17 Andrew MacLeod <amacleod@redhat.com>
* gcc-plugin.h: Add tm.h and flattened includes from function.h.
* testsuite/g++.dg/plugin/pragma_plugin.c: Revert flattening, only
include function.h.
From-SVN: r216402
Alexander Ivchenko [Fri, 17 Oct 2014 13:16:36 +0000 (13:16 +0000)]
AVX-512. 75/n. Update vec_init.
gcc/
* config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
and V32HI modes, update V8HI, V16QI, V32QI modes handling.
(ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
* config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
(define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
(define_expand "vec_init<mode>"): Use VF48_I1248.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r216401
Alexander Ivchenko [Fri, 17 Oct 2014 12:53:24 +0000 (12:53 +0000)]
AVX-512. 80/n. Extend expand_sse2_mulvxdi3.
gcc/
* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
expand_sse2_mulvxdi3.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r216400
Kyrylo Tkachov [Fri, 17 Oct 2014 12:30:16 +0000 (12:30 +0000)]
Fix ChangeLog spacing
From-SVN: r216399
Jonathan Wakely [Fri, 17 Oct 2014 12:21:29 +0000 (13:21 +0100)]
hexfloat.cc: Add dg-require-string-conversions.
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
Add dg-require-string-conversions.
* testsuite/27_io/headers/cstdio/types_std.cc: Test for fpos_t.
From-SVN: r216398
Ville Voutilainen [Fri, 17 Oct 2014 12:21:21 +0000 (15:21 +0300)]
Implement the Library Fundamentals v1 variable templates.
2014-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement the Library Fundamentals v1 variable templates.
* include/Makefile.am: Add the new header.
* include/Makefile.in: Regenerate.
* include/experimental/type_traits: New.
* testsuite/experimental/type_traits/value.cc: Likewise.
From-SVN: r216397
Richard Biener [Fri, 17 Oct 2014 11:32:12 +0000 (11:32 +0000)]
fold-const.c (fold_comparison): Remove redundant constant folding and operand swapping.
2014-10-17 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_comparison): Remove redundant constant
folding and operand swapping.
(fold_binary_loc): Do comparison operand swapping here.
(fold_ternary_loc): Canonicalize operand order for
commutative ternary operations.
* tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
and FMA_EXPR.
From-SVN: r216394
Jakub Jelinek [Fri, 17 Oct 2014 10:54:54 +0000 (12:54 +0200)]
re PR tree-optimization/63464 (compare one character to many: faster)
PR tree-optimization/63464
* gimple.h (gimple_seq_discard): New prototype.
* gimple.c: Include stringpool.h and tree-ssanames.h.
(gimple_seq_discard): New function.
* optabs.h (lshift_cheap_p): New prototype.
* optabs.c (lshift_cheap_p): New function, moved from...
* tree-switch-conversion.c (lshift_cheap_p): ... here.
* tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
(reassoc_branch_fixups): New variable.
(update_range_test): Add otherrangep and seq arguments.
Unshare exp. If otherrange is NULL, use for other ranges
array of pointers pointed by otherrangep instead.
Emit seq before gimplified statements for tem.
(optimize_range_tests_diff): Adjust update_range_test
caller.
(optimize_range_tests_xor): Likewise. Fix up comment.
(extract_bit_test_mask, optimize_range_tests_to_bit_test): New
functions.
(optimize_range_tests): Adjust update_range_test caller.
Call optimize_range_tests_to_bit_test.
(branch_fixup): New function.
(execute_reassoc): Call branch_fixup.
* gcc.dg/torture/pr63464.c: New test.
* gcc.dg/tree-ssa/reassoc-37.c: New test.
* gcc.dg/tree-ssa/reassoc-38.c: New test.
From-SVN: r216393
Jakub Jelinek [Fri, 17 Oct 2014 10:50:16 +0000 (12:50 +0200)]
re PR tree-optimization/63302 (Code with 64-bit long long constants is miscompiled on 32-bit host)
PR tree-optimization/63302
* tree-ssa-reassoc.c (optimize_range_tests_xor,
optimize_range_tests_diff): Use !integer_pow2p () instead of
tree_log2 () < 0.
* gcc.c-torture/execute/pr63302.c: New test.
From-SVN: r216391
Martin Liska [Fri, 17 Oct 2014 09:37:35 +0000 (11:37 +0200)]
Temporary fix for PR63566.
* ipa-icf.c (sem_function::merge): Local flags are set to false
to enforce equal calling convention to be used.
* opts.c (common_handle_option): Indentation fix.
From-SVN: r216386
Arnaud Charlet [Fri, 17 Oct 2014 09:20:50 +0000 (11:20 +0200)]
[multiple changes]
2014-10-17 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb (Expand_N_Task_Body): Add defense against
previous errors.
* freeze.adb (Freeze_Entity): Add defense against checking null
scope for generic.
* restrict.adb (Tasking_Allowed): Add test for No_Run_Time mode.
* sem_ch13.adb (Freeze_Entity_Checks): Add defense against
previous errors.
* sem_ch9.adb (Analyze_Task_Type_Declaration): Give error if
in No_Run_Time mode.
2014-10-17 Robert Dewar <dewar@adacore.com>
* prj-makr.adb: Minor reformatting.
2014-10-17 Robert Dewar <dewar@adacore.com>
* gnatcmd.adb, make.adb, prj-part.adb, gnatlink.adb, prj-nmsc.adb,
prj-conf.adb, prj-env.adb: Use Is_Directory_Separator where possible.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* exp_prag.adb (Undo_Initialization): If Initialize_Scalars
is enabled, code will be generated for some composite types
to initialize an object after its declaration. If there is
a subsequent Import pragma for the object, that code must be
removed as specified byw the semantics of the pragma, and to
prevent out-of-order elaboration issues in the back-end.
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Op_Concat): Keep concatenation operator
wrapping mechanism under debug flag -gnatd.h.
* debug.adb: Claim debug switch -gnatd.h.
From-SVN: r216384
Doug Rupp [Fri, 17 Oct 2014 09:18:17 +0000 (09:18 +0000)]
Makefile.in: Enable the socket runtime bits for Android.
* gcc-interface/Makefile.in: Enable the socket runtime bits
for Android.
From-SVN: r216383
Ed Schonberg [Fri, 17 Oct 2014 09:14:42 +0000 (09:14 +0000)]
sem_ch13.adb (Add_Invariants, [...]): Do not perform the replacement on the expression for an inherited class-wide...
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Add_Invariants, Replace_Type_References): Do
not perform the replacement on the expression for an inherited
class-wide invariant if in ASIS_Mode and the type reference is
already the prefix of a 'Class attribute reference: the expression
has already been preanalyzed and the replacement performed when
first encountered on the declaration of the parent type.
From-SVN: r216382
Robert Dewar [Fri, 17 Oct 2014 09:12:56 +0000 (09:12 +0000)]
sem_ch5.adb, [...]: Minor reformatting.
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_ch5.adb, sem_ch7.adb, prj-nmsc.adb, sem_ch13.adb, exp_ch3.adb:
Minor reformatting.
From-SVN: r216381
Arnaud Charlet [Fri, 17 Oct 2014 09:11:14 +0000 (11:11 +0200)]
[multiple changes]
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant
subprogram from base type.
* sem_ch7.adb (Analyze_Package_Specification): Build invariant
subprogram for private type, not any of its subtypes.
* sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type
of procedure entity, because a call to it may be generated in
a client unit before the corresponding subprogram declaration
is analyzed.
2014-10-17 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Directories): Do not create directories
when a project is abstract.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): If the domain
of iteration is given by an expression that is not an array type,
verify that its type implements an iterator iterface.
From-SVN: r216380
Arnaud Charlet [Fri, 17 Oct 2014 09:07:50 +0000 (11:07 +0200)]
[multiple changes]
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Eval_Attribute): Ensure that attribute
reference is not marked as being a static expression if the
prefix evaluation raises CE.
2014-10-17 Robert Dewar <dewar@adacore.com>
* exp_pakd.adb: Move bit packed entity tables to spec.
* exp_pakd.ads: Move bit packed entity tables here from body.
* freeze.adb (Freeze_Array_Type): Check that packed array type
is supported.
* rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined):
Specialize messages using PRE_Id_Table.
* uintp.ads, uintp.adb (UI_Image): New functional form.
2014-10-17 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb: Add Suppress_Initialization aspect.
* einfo.ads, einfo.adb (Suppress_Initialization): Now applies to
E_Variable.
* exp_ch3.adb (Default_Initialize_Object): Handle
Suppress_Initialization.
* exp_prag.adb (Expand_Pragma_Suppress_Initialization): New
procedure (Expand_N_Pragma): Handle Suppress_Initialization
(Expand_Pragma_Import_Or_Interface): Use Undo_Initialization
(Undo_Initialization): New procedure.
* sem_prag.adb (Analyze_Pragma, case Suppress_Initialization):
This is now allowed for E_Variable case.
* gnat_rm.texi: Document new aspect Suppress_Initialization
Suppress_Initialization aspect/pragma can apply to variable.
* einfo.ads: Minor reformatting.
2014-10-17 Arnaud Charlet <charlet@adacore.com>
* spark_xrefs.ads: Add documentation pointer to Flow_Computed_Globals.
2014-10-17 Robert Dewar <dewar@adacore.com>
* cstand.adb (Create_Standard): Mark Short_Integer as
implementation defined.
* sem_util.adb (Set_Entity_With_Checks): Avoid blow up for
compiler built with assertions for No_Implementation_Identifiers test.
From-SVN: r216379
Robert Dewar [Fri, 17 Oct 2014 08:52:30 +0000 (08:52 +0000)]
aspects.ads: Documentation fix, aspect Lock_Free does have a corresponding pragma.
2014-10-17 Robert Dewar <dewar@adacore.com>
* aspects.ads: Documentation fix, aspect Lock_Free does have a
corresponding pragma.
* gnat_rm.texi: Document implementation defined boolean aspects
as boolean.
From-SVN: r216378
Arnaud Charlet [Fri, 17 Oct 2014 08:51:08 +0000 (10:51 +0200)]
[multiple changes]
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Add_Invariants): For a class-wide type invariant,
preserve semantic information on the invariant expression
(typically a function call) because it may be inherited by a
type extension in a different unit, and it cannot be resolved
by visibility elsewhere because it may refer to local entities.
2014-10-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document that string literal can be used for
pragma Warnings when operating in Ada 83 mode.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Find_Aggregate_Component_Desig_Type): New
subsidiary function to Freeze_ Expression, used to determine
whether an aggregate for an array of access types also freezes the
designated type, when some aggregate components are allocators.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* a-strsea.adb (Find_Token): AI05-031 indicates that the
procedure must raise Index_Error when Source is not empty and
the From parameter is not within the range of the Source string.
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Is_Static_String_Expression): Allow string
literal in Ada 83 mode.
From-SVN: r216377
Arnaud Charlet [Fri, 17 Oct 2014 08:49:10 +0000 (10:49 +0200)]
[multiple changes]
2014-10-17 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Get_Config_Switches): In CodePeer mode, do
not take into account any compiler command from package IDE.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Build_Function_Wrapper): The formals of the
wrapper must have the same identifiers as those of the formal
subprogram, because calls within the generic may use named
associations.
From-SVN: r216376
Robert Dewar [Fri, 17 Oct 2014 08:47:56 +0000 (08:47 +0000)]
sem_ch3.adb, [...]: Minor reformatting.
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, a-strsea.adb: Minor reformatting.
* par-ch6.adb (P_Subprogram): Fix bad handling of null procedures.
From-SVN: r216375
Ed Schonberg [Fri, 17 Oct 2014 08:46:37 +0000 (08:46 +0000)]
sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect specfications from original type declaration to declaration of...
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect
specfications from original type declaration to declaration of
implicit base, because original node is rewritten as a subtype
declaration on which type aspects do not belong.
From-SVN: r216373
Arnaud Charlet [Fri, 17 Oct 2014 08:45:39 +0000 (10:45 +0200)]
[multiple changes]
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type
inherits the attributes related to pragma Default_Initial_Condition
from its parent type.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* a-strsea.adb (Index - versions with a From parameter):
According to AI05-056, the Index functions with a From parameter
return 0 if the source is an empty string.
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable
the consistency checks in ASIS mode.
2014-10-17 Arnaud Charlet <charlet@adacore.com>
* s-expmod.ads: Minor typo fix.
From-SVN: r216372
Arnaud Charlet [Fri, 17 Oct 2014 08:42:41 +0000 (10:42 +0200)]
[multiple changes]
2014-10-17 Robert Dewar <dewar@adacore.com>
* sem_util.adb: Minor reformatting.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Build_Function_Wrapper): Build wrappers for
actuals that are defaulted subprograms of the formal subprogram
declaration.
2014-10-17 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the
implementation base type.
* sinfo.ads: Add a note for N_Op_Eq and N_Op_Ne that record
operands are always expanded out into component comparisons.
2014-10-17 Robert Dewar <dewar@adacore.com>
* s-vallli.adb: Minor comment correction.
* s-valuti.ads: Minor comment reformatting.
2014-10-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document System.Atomic_Counters.
* impunit.adb: Add System.Atomic_Counters (s-atocou.ads) to the
list of user- accessible units added as children of System.
* s-atocou.ads: Update comment.
2014-10-17 Arnaud Charlet <charlet@adacore.com>
* s-expmod.ads: Add comments.
From-SVN: r216371
Hristian Kirtchev [Fri, 17 Oct 2014 08:34:54 +0000 (08:34 +0000)]
sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation of all attributes related to pragma...
2014-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation
of all attributes related to pragma Default_Initial_Condition.
(Build_Derived_Type): Propagation of all attributes related
to pragma Default_Initial_Condition.
(Process_Full_View): Account for the case where the full view derives
from another private type and propagate the attributes related
to pragma Default_Initial_Condition to the private view.
(Propagate_Default_Init_Cond_Attributes): New routine.
* sem_util.adb: Alphabetize various routines.
(Build_Default_Init_Cond_Call): Use an unchecked type conversion
when calling the default initial condition procedure of a private type.
(Build_Default_Init_Cond_Procedure_Declaration): Prevent
the generation of multiple default initial condition procedures.
From-SVN: r216370
Arnaud Charlet [Fri, 17 Oct 2014 08:32:25 +0000 (10:32 +0200)]
[multiple changes]
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: Refine previous change.
2014-10-17 Robert Dewar <dewar@adacore.com>
* prj-conf.adb: Revert previous change.
From-SVN: r216369
Arnaud Charlet [Fri, 17 Oct 2014 08:29:23 +0000 (10:29 +0200)]
[multiple changes]
2014-10-17 Robert Dewar <dewar@adacore.com>
* lib-writ.ads, s-valdec.ads: Minor reformatting.
2014-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: Additional work on function wrappers.
2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
* exp_util.adb (Possible_Bit_Aligned_Component): Also recurse
on the renamed object of renamings.
2014-10-17 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer
mode, always use the native target.
From-SVN: r216368
Marc Glisse [Fri, 17 Oct 2014 08:26:33 +0000 (10:26 +0200)]
tree-into-ssa.c (is_old_name): Replace "new" with "old".
2014-10-17 Marc Glisse <marc.glisse@inria.fr>
* tree-into-ssa.c (is_old_name): Replace "new" with "old".
From-SVN: r216367
Markus Trippelsdorf [Fri, 17 Oct 2014 07:06:40 +0000 (07:06 +0000)]
Fix misplaced changelog entry
From-SVN: r216366
Tom de Vries [Fri, 17 Oct 2014 06:36:45 +0000 (06:36 +0000)]
Use fuse-caller-save info in cprop-hardreg
2014-10-17 Tom de Vries <tom@codesourcery.com>
PR rtl-optimization/61605
* regcprop.c (copyprop_hardreg_forward_1): Use
regs_invalidated_by_this_call instead of regs_invalidated_by_call.
* gcc.target/i386/fuse-caller-save.c: Update addition check. Add movl
absence check.
From-SVN: r216365
Tom de Vries [Fri, 17 Oct 2014 06:36:35 +0000 (06:36 +0000)]
Handle copy cycles in pass_cprop_hardreg
2014-10-17 Tom de Vries <tom@codesourcery.com>
PR rtl-optimization/61605
* regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
notice stores for noops. Don't regard noops as copies.
From-SVN: r216364
Uros Bizjak [Fri, 17 Oct 2014 06:07:17 +0000 (08:07 +0200)]
* Add missing ChangeLog entry.
From-SVN: r216363
Uros Bizjak [Fri, 17 Oct 2014 06:00:58 +0000 (08:00 +0200)]
cpuid.h (__cpuid): Remove definitions that handle %ebx register in a special way.
* config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
register in a special way.
(__cpuid_count): Ditto.
* config/i386/driver-i386.h: Protect with
"#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
(host_detect_local_cpu): Mention that GCC with non-fixed %ebx
is required to compile the function.
From-SVN: r216362