aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2013-09-12Support lambda templates.Adam Butcher5-38/+217
* parser.c (cp_parser_lambda_declarator_opt): Accept template parameter list with std=c++1y or std=gnu++1y. (cp_parser_lambda_body): Don't call 'expand_or_defer_fn' for lambda call operator template to avoid adding template result to symbol table. * lambda.c (lambda_function): Return template result if call operator is a template. (maybe_add_lambda_conv_op): Move declarations to point of use. Refactor operator call building in order to support conversion of a non-capturing lambda template to a function pointer with help from ... (prepare_op_call): ... this new function. * decl2.c (check_member_template): Don't reject lambda call operator template in local [lambda] class. * pt.c (instantiate_class_template_1): Don't instantiate lambda call operator template when instantiating lambda class. From-SVN: r202539
2013-09-12Support decl instantiation in function-local templates.Adam Butcher2-2/+17
* pt.c (instantiate_decl): Save/restore cp_unevaluated_operand and c_inhibit_evaluation_warnings. Reset if instantiating within a function-local template. From-SVN: r202538
2013-09-12Add missed .c for the file name in ChangelogVladimir Makarov1-1/+1
From-SVN: r202537
2013-09-12re PR middle-end/58335 (S/390: reload vs lra regression - testcase ↵Vladimir Makarov2-45/+66
builtin-in-setjmp) 2013-09-12 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/58335 * lra-eliminations (remove_reg_equal_offset_note): New. (eliminate_regs_in_insn): Rewrite frame pointer to hard frame pointer elimination with using remove_reg_equal_offset_note. From-SVN: r202536
2013-09-12MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers.DJ Delorie17-3/+3784
* MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers. [gcc] * config/msp430/: New port. * config.gcc (msp430): Added. * doc/invoke.texi: Document MSP430 options. * doc/install.texi: Document msp430-elf * doc/md.texi: Document msp430-elf * doc/contrib.texi: Document msp430-elf [libgcc] * config.host (msp*-*-elf): New. * config/msp430/: New port. [contrib] * config-list.mk: Add msp430-elf. From-SVN: r202535
2013-09-12cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to PSImode.DJ Delorie2-1/+11
* cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to PSImode. From-SVN: r202534
2013-09-12pr58380.C: Suppress warnings with "-w".Paolo Carlini2-0/+6
2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/torture/pr58380.C: Suppress warnings with "-w". From-SVN: r202533
2013-09-12re PR ipa/58389 (g++ ICE in ipa_find_reference)Martin Jambor4-1/+77
2013-09-12 Martin Jambor <mjambor@suse.cz> PR ipa/58389 * ipa-prop.c (remove_described_reference): Give up if the edge in the reference descriptor is NULL. (ipa_edge_removal_hook): If owning a reference descriptor, set its edge to NULL. testsuite/ * g++.dg/pr58389.C: New test. From-SVN: r202532
2013-09-122013-09-12 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini1-1/+1
* Tweak last ChangeLo entry. From-SVN: r202530
2013-09-122013-09-12 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini2-1/+2
* Complete last commit. From-SVN: r202529
2013-09-12semantics.c (finish_pseudo_destructor_expr): Add location_t parameter.Paolo Carlini7-21/+44
2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> * semantics.c (finish_pseudo_destructor_expr): Add location_t parameter. * pt.c (unify_arg_conversion): Use EXPR_LOC_OR_HERE. (tsubst_copy_and_build): Adjust finish_pseudo_destructor_expr calls. * parser.c (cp_parser_postfix_dot_deref_expression): Likewise. (cp_parser_postfix_expression): Pass the proper location to cp_parser_postfix_dot_deref_expression. /testsuite 2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/template/pseudodtor2.C: Add column number to dg-error strings. * g++.dg/template/pseudodtor3.C: Likewise. From-SVN: r202528
2013-09-12tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c (SSANAMES...Andrew MacLeod8-106/+138
* tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def, num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes. * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name, make_temp_ssa_name): move to tree-ssanames.h * tree-ssa-alias.h: Move prototype. * tree-ssa.h: Include tree-ssanames.h. * tree-ssanames.c (FREE_SSANAMES): Move to here. * tree-ssanames.h: New. Move items from tree-flow*.h * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES. From-SVN: r202527
2013-09-12re PR tree-optimization/58404 (&noninvariant_address not forwproped into ↵Richard Biener4-20/+58
->handled_component) 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58404 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also propagate non-invariant addresses into dereferences wrapped in component references. * g++.dg/tree-ssa/pr58404.C: New testcase. From-SVN: r202525
2013-09-12re PR middle-end/58402 (FAIL: gcc.dg/tree-ssa/phi-opt-1.c ↵Richard Biener2-8/+12
scan-tree-dump-times optimized "if" 0) 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58402 * passes.def: Move pass_late_warn_uninitialized later. From-SVN: r202524
2013-09-12tree-ssa.h: New.Andrew MacLeod154-624/+688
* tree-ssa.h: New. Move content from tree-flow.h and tree-flow-inline.h. * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h. Move prototypes belonging to tree-ssa.c. * tree-flow-inline.h (redirect_edge_var_map_def, redirect_edge_var_map_result, redirect_edge_var_map_location): Move to tree-ssa.h. * gimple.h: Adjust prototypes. * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to... * gimple.c (useless_type_conversion_p, types_compatible_p): Here. * tree.h: Move prototype to tree-ssa.h. * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h. * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies. * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c, cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c, ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c, gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c, graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c, loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c, lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c, passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c, tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c, tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c, tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c, tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c, tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c, value-prof.c, var-tracking.c, varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h From-SVN: r202523
2013-09-12re PR ipa/58371 (internal compiler error: in ipcp_verify_propagated_values, ↵Martin Jambor2-0/+209
at ipa-cp.c:892) 2013-09-12 Martin Jambor <mjambor@suse.cz> PR ipa/58371 * g++.dg/ipa/pr58371.C: New test. From-SVN: r202522
2013-09-12re PR tree-optimization/58396 (heap-use-after-free at ↵Richard Biener2-16/+30
gcc/tree-loop-distribution.c:1959) 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58396 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs. (build_rdg): Take a loop-nest parameter, fix memleaks. (distribute_loop): Compute loop-nest here and pass it to build_rdg. From-SVN: r202521
2013-09-12x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM.Yuri Rumyantsev2-1/+7
* config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM. From-SVN: r202520
2013-09-12ChangeLog entry forThomas Schwinge1-0/+14
* gcc-interface/Makefile.in: Import target_cpu, target_vendor, target_os and their host_ counterparts. Remove host_canonical and target_cpu_default, unused. Remove local ad-hoc computations of "host", "targ", "arch", "osys" and "manu". Replace uses of these by uses of the now imported family, hence back to filters against canonical values. Remove filters on e500 for target_cpu, expected to be canonicalized into powerpc. Invert the logic filtering on 64bit sparc for VxWorks. Simplify the filtering logic for bareboard tools target pairs, now using straight elf/eabi filters on the target_os part only. From-SVN: r202519
2013-09-12Makefile.in: Import target_cpu, target_vendor, target_os and their host_ ↵Thomas Schwinge1-80/+72
counterparts. 2013-10-11 Thomas Schwinge <thomas@codesourcery.com> Olivier Hainque <hainque@adacore.com> * gcc-interface/Makefile.in: Import target_cpu, target_vendor, target_os and their host_ counterparts. Remove host_canonical and target_cpu_default, unused. Remove local ad-hoc computations of "host", "targ", "arch", "osys" and "manu". Replace uses of these by uses of the now imported family, hence back to filters against canonical values. Remove filters on e500 for target_cpu, expected to be canonicalized into powerpc. Invert the logic filtering on 64bit sparc for VxWorks. Simplify the filtering logic for bareboard tools target pairs, now using straight elf/eabi filters on the target_os part only. From-SVN: r202518
2013-09-12extend.texi: Fix errors in x86 FMA builtin naming.Cameron McInally2-50/+53
* doc/extend.texi: Fix errors in x86 FMA builtin naming. The FMA instruction names should have a 'v' prefix. From-SVN: r202517
2013-09-12tree-loop-distribution.c (dot_rdg_1): Make graph prettier.Richard Biener4-180/+53
2013-09-12 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (dot_rdg_1): Make graph prettier. (dot_rdg): Use popen instead of system in optional code. (remaining_stmts, upstream_mem_writes): Remove global bitmaps. (already_processed_vertex_p): Adjust. (has_anti_or_output_dependence, predecessor_has_mem_write, mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes, rdg_flag_uses): Remove. (rdg_flag_vertex): Simplify. (rdg_flag_vertex_and_dependent): Rely on a correct RDG and remove recursion. (build_rdg_partition_for_component): Process the first vertex of a component only. (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes. * gcc.dg/tree-ssa/ldist-4.c: Remove undefined behavior. Adjust expected outcome and comment why that happens. From-SVN: r202516
2013-09-12rs6000.c (toc_relative_expr_p): Use add_cint_operand.Alan Modra2-1/+5
* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand. From-SVN: r202515
2013-09-12Daily bump.GCC Administrator1-1/+1
From-SVN: r202514
2013-09-11predicates.md (rl78_cmp_operator_signed): New.DJ Delorie9-293/+1628
* config/rl78/predicates.md (rl78_cmp_operator_signed): New. (rl78_stack_based_mem): New. * config/rl78/constraints.md (Iv08): New. (Iv16): New. (Iv24): New. (Is09): New. (Is17): New. (Is25): New. (ISsi): New. (IShi): New. (ISqi): New. * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands. (movhi): Likewise. (movsi): Change from expand to insn-and-split. (ashrsi3): Clobber AX. (lshrsi3): New. (ashlsi3): New. (cbranchsi4): New. * config/rl78/rl78.md (CC_REG): Fix. (addsi3): Allow memory and immediate operands. (addsi3_internal): Split into... (addsi3_internal_virt): ...new, and ... (addsi3_internal_real): ...new. (subsi): New. (subsi3_internal_virt): New. (subsi3_internal_real): New. (mulsi3): Add memory operand. (mulsi3_rl78): Likewise. (mulsi3_g13): Likewise. * config/rl78/rl78-real.md (cbranchqi4_real_signed): New. (cbranchqi4_real): Add more constraint options. (cbranchhi4_real): Expand pattern. (cbranchhi4_real_signed): New. (cbranchhi4_real_inverted): New. (cbranchsi4_real_lt): New. (cbranchsi4_real_ge): New. (cbranchsi4_real_signed): New. (cbranchsi4_real): New. (peephole2): New. * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for constant shifts. (lshrsi3_virt): Likewise. (ashlsi3_virt): Likewise. (cbranchqi4_virt_signed): New. (cbranchhi4_virt_signed): New. (cbranchsi4_virt): New. * config/rl78/rl78.c: Whitespace fixes throughout. (move_elim_pass): New. (pass_data_rl78_move_elim): New. (pass_rl78_move_elim): New. (make_pass_rl78_move_elim): New. (rl78_devirt_info): Run devirt earlier. (rl78_move_elim_info): New. (rl78_asm_file_start): Register it. (rl78_split_movsi): New. (rl78_as_legitimate_address): Allow virtual base registers when appropriate. (rl78_addr_space_convert): Remove spurious debug stuff. (rl78_print_operand_1): Add z,s,S,r,E modifiers. (rl78_print_operand): More cases for not printing '#'. (rl78_expand_compare): Remove most of the logic. (content_memory): New. (clear_content_memory): New. (get_content_index): New. (get_content_name): New. (display_content_memory): New. (update_content): New. (record_content): New. (already_contains): New. (insn_ok_now): Re-recog insns with virtual registers. (add_postponed_content_update): New. (process_postponed_content_update): New. (gen_and_emit_move): New. (transcode_memory_rtx): Record new location content. Use gen_and_emit_move. (force_into_acc): New. (move_to_acc): Use gen_and_emit_move. (move_from_acc): Likewise. (move_acc_to_reg): Likewise. (move_to_x): Likewise. (move_to_hl): Likewise. (move_to_de): Likewise. (rl78_alloc_physical_registers_op1): Record location content. (has_constraint): New. (rl78_alloc_physical_registers_op2): Record location content. Optimize use of HL. (rl78_alloc_physical_registers_ro1): Likewise. (rl78_alloc_physical_registers_cmp): Likewise. (rl78_alloc_physical_registers_umul): Likewise. (rl78_alloc_address_registers_macax): New. (rl78_alloc_physical_registers): Initialize and set location content memory as needed. (rl78_reorg): Make sure split2 is called. (rl78_rtx_costs): New. Co-Authored-By: Nick Clifton <nickc@redhat.com> From-SVN: r202511
2013-09-11simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for ↵Richard Sandiford2-2/+9
(not (neg ...)) and (neg (not ...)) cases. gcc/ * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for (not (neg ...)) and (neg (not ...)) cases. From-SVN: r202506
2013-09-11re PR c++/58377 (spurious "may be used uninitialized" warning with -Og)Richard Biener5-0/+34
2013-09-11 Richard Biener <rguenther@suse.de> PR middle-end/58377 * passes.def: Split critical edges before late uninit warning passes. * tree-cfg.c (pass_split_crit_edges): Implement clone method. * g++.dg/uninit-pred-4.C: New testcase. From-SVN: r202496
2013-09-11re PR middle-end/58385 (likely wrong code bug)Jakub Jelinek4-1/+33
PR tree-optimization/58385 * fold-const.c (build_range_check): If both low and high are NULL, use omit_one_operand_loc to preserve exp side-effects. * gcc.c-torture/execute/pr58385.c: New test. From-SVN: r202494
2013-09-11arm.md (arm_shiftsi3): New alternative l/l/M.Kyrylo Tkachov4-6/+32
[gcc/] * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M. [gcc/testsuite] * gcc.target/arm/thumb-ifcvt-2.c: New test. From-SVN: r202493
2013-09-11tree-data-ref.c (dump_rdg_vertex, [...]): Move ...Richard Biener4-585/+589
2013-09-11 Richard Biener <rguenther@suse.de> * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr, create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices, stmts_from_loop, known_dependences_p, build_empty_rdg, build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ... * tree-loop-distribution.c: ... here. * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS, RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS, RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type, struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ... * tree-loop-distribution.c: ... here. * tree-loop-distribution.c: Include gimple-pretty-print.h. (struct partition_s): Add loops member. (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex, rdg_flag_vertex_and_dependent, rdg_flag_loop_exits, build_rdg_partition_for_component, rdg_build_partitions): Adjust. From-SVN: r202492
2013-09-11constraints.md (k): New.Alexander Ivchenko6-62/+385
* config/i386/constraints.md (k): New. (Yk): Ditto. * config/i386/i386.c (const regclass_map): Add new mask registers. (dbx_register_map): Ditto. (dbx64_register_map): Ditto. (svr4_dbx_register_map): Ditto. (ix86_conditional_register_usage): Squash mask registers if AVX512F is disabled. (ix86_preferred_reload_class): Disable constants for mask registers. (ix86_secondary_reload): Do spill of mask register using 32-bit insn. (ix86_hard_regno_mode_ok): Support new mask registers. (x86_order_regs_for_local_alloc): Ditto. * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update. (FIXED_REGISTERS): Add new mask registers. (CALL_USED_REGISTERS): Ditto. (REG_ALLOC_ORDER): Ditto. (VALID_MASK_REG_MODE): New. (FIRST_MASK_REG): Ditto. (LAST_MASK_REG): Ditto. (reg_class): Add MASK_EVEX_REGS, MASK_REGS. (MAYBE_MASK_CLASS_P): New. (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS. (REG_CLASS_CONTENTS): Ditto. (MASK_REGNO_P): New. (ANY_MASK_REG_P): Ditto. (HI_REGISTER_NAMES): Add new mask registers. * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG, MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new mask registers. (attribute "type"): Add mskmov, msklog. (attribute "length_immediate"): Support them. (attribute "memory"): Ditto. (attribute "prefix_0f"): Ditto. (*movhi_internal): Support new mask registers. (*movqi_internal): Ditto. (define_split): Split out clobber pattern is a logic insn on mask registers. (*k<logic><mode>): New. (*andhi_1): Extend to support mask regs. (*andqi_1): Extend to support mask regs. (kandn<mode>): New. (define_split): Split and-not to and and not if operands are not mask regs. (*<code><mode>_1): Separate HI mode to new pattern... (*<code>hi_1): This. (*<code>qi_1): Extend to support mask regs. (kxnor<mode>): New. (kortestzhi): Ditto. (kortestchi): Ditto. (kunpckhi): Ditto. (*one_cmpl<mode>2_1): Remove HImode and handle it... (*one_cmplhi2_1): ...Here, now with mask registers support. (*one_cmplqi2_1): Support new mask registers. (HI/QImode arithmetics splitter): Don't split if mask registers are used. (HI/QImode not splitter): Ditto. * config/i386/predicated.md (mask_reg_operand): New. (general_reg_operand): Ditto. 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> Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com> From-SVN: r202491
2013-09-11*·doc/invoke.texi:·Document·fxsr,·xsave·and·xsaveopt·options.Alexander Ivchenko3-3/+36
*·doc/extend.texi:·Document·fxsr,·xsave·and·xsaveopt·builtins. From-SVN: r202490
2013-09-10re PR tree-optimization/58380 (ice in fold_comparison)Jeff Law5-10/+209
PR tree-optimization/58380 * tree-ssa-threadupdate.c (thread_block): Recognize another case of threading through a buried loop header. * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct return value for single successor case. * g++.dg/torture/pr58380.C: New test. 2013-09-10 Jeff Law <law@redhat.com> From-SVN: r202489
2013-09-11Daily bump.GCC Administrator1-1/+1
From-SVN: r202486
2013-09-10* ipa-devirt.c (ipa_devirt): Enable with LTO.Jan Hubicka2-1/+5
From-SVN: r202482
2013-09-10re PR target/58361 (Wrong floating point code generated for ARM target)Richard Earnshaw2-13/+23
PR target/58361 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to support conditional execution. (combine_vcvt_f64_<FCVTI32typename>): Likewise. From-SVN: r202475
2013-09-10lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass.Vladimir Makarov3-25/+62
2013-09-10 Vladimir Makarov <vmakarov@redhat.com> * lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass. * lra-constraints.c (curr_insn_transform): Switch on optional reloads. Check destination too to check move insn. (undo_optional_reloads): Add check that the original peudo did not changed its allocation and the optional reload was inherited on last inheritance pass. Break loop after deciding to keep optional reload. (lra_undo_inheritance): Add check that inherited pseudo still in memory. From-SVN: r202468
2013-09-10[multiple changes]Arnaud Charlet10-174/+481
2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: sem_ch3.adb: (Replace_Anonymoous_Access_To_Protected_Subprogram): If the return type is itself an access to function, recurse to emit another anonymous type. gcc-interface/decl.c (gnat_to_gnu_entity): In ASIS mode (type_annotate_only) do not check whether access types have a set size. 2013-09-10 Robert Dewar <dewar@adacore.com> * err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode. * errout.adb (Warning_Doc_Switch): Ignored in VMS mode. * errout.ads (Warning_Doc_Switch): Ignored in VMS mode. * inline.ads (Warnings): New component in Pending_Body_Info. * sem_ch12.adb (Pending_Body_Info): Save and restore warnings at instantiation point. * warnsw.adb (Save_Warnings): New function (Restore_Warnings): New procedure Remove special handling of Warning_Doc_Switch, cleaner to handle the VMS case in errout, than to introduce undocumented oddities here. * warnsw.ads (Warning_Record) : New type. (Save_Warnings): New function. (Restore_Warnings): New procedure. From-SVN: r202467
2013-09-10[multiple changes]Arnaud Charlet22-112/+183
2013-09-10 Robert Dewar <dewar@adacore.com> * sinput.adb (Check_For_BOM): Avoid reading past end of file. 2013-09-10 Robert Dewar <dewar@adacore.com> * errout.adb (Error_Msg_Ada_2012_Feature): New procedure. * errout.ads (Error_Msg_Ada_2012_Feature): New procedure. * inline.ads: Save/Restore Ada_Version_Pragma. * opt.adb: Save/Restore Ada_Version_Pragma. * opt.ads (Ada_Version_Pragma): New variable. * par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch8.adb, par-prag.adb: Use Error_Msg_Ada_2012_Feature. * prj.adb: Initialize Ada_Version_Pragma. * sem_attr.adb: Use Error_Msg_Ada_2012_Feature. * sem_ch12.adb, sem_ch8.adb: Save/restore Ada_Version_Pragma. * sem_prag.adb (Analyze_Pragma, cases Ada_xx): Set Ada_Version_Pragma. * switch-c.adb: Initialize Ada_Version_Pragma. * sem_ch12.adb: Minor reformatting. 2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Process_Subtype): Discard constraint on access to class-wide type. Such constraints are not supported and are considered a language pathology. From-SVN: r202466
2013-09-10gnatbind.adb: Correct starting date in --version string.Robert Dewar7-15/+50
2013-09-10 Robert Dewar <dewar@adacore.com> * gnatbind.adb: Correct starting date in --version string. * gnatdll.adb: Use Check_Version_And_Help_G to implement --help and --version. * gnatkr.adb: Use Check_Version_And_Help_G to implement --help and --version. * gnatlink.adb: Correct starting date in --version string. * gnatls.adb: Correct starting date in --version string. * make.adb: Correct starting date in --version string. From-SVN: r202465
2013-09-10switch-c.adb: Minor reformatting.Robert Dewar4-4/+66
2013-09-10 Robert Dewar <dewar@adacore.com> * switch-c.adb: Minor reformatting. * atree.ads (Original_Nodes): Add documentation on ASIS usage. * sinfo.ads: Add section on ASIS mode (documentation only). From-SVN: r202464
2013-09-10sem_prag.adb (Analyze_Pragma, [...]): Don't allow REASON parameter in ↵Robert Dewar3-3/+32
compiler units (bootstrap issues). 2013-09-10 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma, case Warnings): Don't allow REASON parameter in compiler units (bootstrap issues). 2013-09-10 Robert Dewar <dewar@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Output warning if -gnateE specified for a target that does not support it. From-SVN: r202463
2013-09-10[multiple changes]Arnaud Charlet8-35/+140
2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Handle properly a subprogram body without previous spec. 2013-09-10 Gary Dismukes <dismukes@adacore.com> * sem_ch4.adb: Minor typo fixes. 2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb (Aspects_On_Body_OK): New routine. * aspects.ads: Modify type Aspect_Expression to include the Optional_XXX variants. Update the contents of table Aspect_Argument. Add table Aspect_On_Body_OK. (Aspects_On_Body_OK): New routine. * par-ch13.adb (Get_Aspect_Specifications): Account for optional names and expressions when parsing an aspect. * sem_ch6.adb: Add with and use clause for Aspects. (Analyze_Subprogram_Body_Helper): Do not emit an error when analyzing a body with aspects that can be applied simultaneously to both spec and body. * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the corresponding pragma of an aspect that applies to a subprogram body in the declarative part. (Make_Aitem_Pragma): Do not generate a pragma with an empty argument list. From-SVN: r202462
2013-09-10[multiple changes]Arnaud Charlet13-19/+107
2013-09-10 Robert Dewar <dewar@adacore.com> * switch-c.adb: Diagnose -gnatc given after -gnatRm. * gnat_ugn.texi: Add documentation for -gnatRm. * usage.adb: Minor reorganization (put style entries in proper order) Document -gnatRm switch. * sinfo.ads: Minor comment fix. 2013-09-10 Sergey Rybin <rybin@adacore.com frybin> * tree_io.ads: Update ASIS_Version_Number. 2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Access_Subprogram_Declaration): Check whether the designated type can appear in a parameterless call. * sem_ch4.adb (Analyze_Call): Do not insert an explicit dereference in the case of an indirect call through an access function that returns an array type. (Analyze_One_Call): Handle properly legal parameterless calls whose result is indexed, in constructs of the for F.all (I) * sem_ch6.ads (May_Need_Actuals): Make public, for use on access to subprogram types. * sem_res.adb (Resolve_Call): If the call is indirect, there is no entity to set on the name in the call. From-SVN: r202461
2013-09-10[multiple changes]Arnaud Charlet19-93/+556
2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add entries in the Has_Aspect_Specifications_Flag table for package body and body stubs. (Move_Or_Merge_Aspects): New routine. (Remove_Aspects): New routine. * aspects.ads (Move_Aspects): Update comment on usage. (Move_Or_Merge_Aspects): New routine. (Remove_Aspects): New routine. * par-ch3.adb: Update the grammar of private_type_declaration, private_extension_declaration, object_renaming_declaration, and exception_renaming_declaration. (P_Subprogram): Parse the aspect specifications that apply to a body stub. * par-ch6.adb: Update the grammar of subprogram_body_stub and generic_instantiation. * par-ch7.adb: Update the grammar of package_declaration, package_specification, package_body, package_renaming_declaration, package_body_stub. (P_Package): Parse the aspect specifications that apply to a body, a body stub and package renaming. * par-ch9.adb: Update the grammar of entry_declaration, protected_body, protected_body_stub, task_body, and task_body_stub. (P_Protected): Add local variable Aspect_Sloc. Add local constant Dummy_Node. Parse the aspect specifications that apply to a protected body and a protected body stub. (P_Task): Add local variable Aspect_Sloc. Add local constant Dummy_Node. Parse the aspect specifications that apply to a task body and a task body stub. * par-ch12.adb: Update the grammar of generic_renaming_declaration. (P_Generic): Parse the aspect specifications that apply to a generic renaming. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not emit an error when analyzing aspects that apply to a body stub. Such aspects are relocated to the proper body. * sem_ch7.adb (Analyze_Package_Body_Helper): Analyze the aspect specifications that apply to a body. * sem_ch9.adb (Analyze_Protected_Body): Warn about user-defined aspects not being supported on protected bodies. Remove the aspect specifications. (Analyze_Single_Protected_Declaration): Analyze the aspects that apply to a single protected declaration. (Analyze_Task_Body): Warn about user-defined aspects not being supported on task bodies. Remove the aspect specifications. * sem_ch10.adb: Add with and use clause for Aspects. (Analyze_Package_Body_Stub): Propagate the aspect specifications from the stub to the proper body. * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the corresponding pragma of an aspect that applies to a body in the declarations of the body. * sinfo.ads: Update the gramma of expression_function, private_type_declaration, private_extension_declaration, object_renaming_declaration, exception_renaming_declaration, package_renaming_declaration, subprogram_renaming_declaration, generic_renaming_declaration, entry_declaration, subprogram_body_stub, package_body_stub, task_body_stub, generic_subprogram_declaration. 2013-09-10 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Pragma): Add processing for aspect/pragma SPARK_Mode when it applies to a [library-level] subprogram or package [body]. 2013-09-10 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Document that -gnatc and -gnatR cannot be given together. * switch-c.adb (Scan_Front_End_Switches): Give error if both -gnatR and -gnatc given. 2013-09-10 Robert Dewar <dewar@adacore.com> * g-table.ads, g-table.adb (For_Each): New generic procedure (Sort_Table): New generic procedure. From-SVN: r202460
2013-09-10[multiple changes]Arnaud Charlet6-14/+31
2013-09-10 Thomas Quinot <quinot@adacore.com> * adaint.c (__gnat_is_executable_file_attr): Should be true for an executable regular file only only (not for a directory that has the executable permission). 2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_res.adb: Further work on operator calls in ASIS. 2013-09-10 Yannick Moy <moy@adacore.com> * sinfo.ads, sem_prag.ads, sem_ch13.adb: Minor correction and comment update. From-SVN: r202459
2013-09-10aspects.ads, [...]: Minor reformatting.Thomas Quinot4-8/+19
2013-09-10 Thomas Quinot <quinot@adacore.com> * aspects.ads, sem_ch13.adb: Minor reformatting. * adaint.c (__gnat_set_close_on_exec): Add comment documenting that this routine is shared between OS_Lib and Sockets. From-SVN: r202458
2013-09-10exp_prag.adb (Expand_Pragma_Check): Ignore pragma if Is_Ignored set.Robert Dewar7-58/+159
2013-09-10 Robert Dewar <dewar@adacore.com> * exp_prag.adb (Expand_Pragma_Check): Ignore pragma if Is_Ignored set. * sem_ch13.adb (Make_Aitem_Pragma): Set Is_Checked if needed. * sem_prag.adb (Check_Kind): Moved from spec (Analyze_Pragma): Make sure Is_Ignored/Is_Checked are set right (Analyze_Pragma, case Check): Ditto (Check_Applicable_Policy): Handle Statement_Assertion case Throughout, set and check the Is_Checked flag as appropriate. * sem_prag.ads (Check_Kind): Moved to body. * sinfo.ads, sinfo.adb (Is_Checked): New flag. From-SVN: r202457
2013-09-10[multiple changes]Arnaud Charlet10-151/+655
2013-09-10 Robert Dewar <dewar@adacore.com> * aspects.ads (Delay_Type): New type (Aspect_Delay): New table. * einfo.adb (Has_Delayed_Rep_Aspects): New flag (May_Inherit_Delayed_Rep_Aspects): New flag (Rep_Clause): Removed (use Get_Attribute_Representation_Clause). * einfo.ads (Has_Delayed_Rep_Aspects): New flag (May_Inherit_Delayed_Rep_Aspects): New flag * freeze.adb: Minor reformatting * sem_ch13.adb (Analyze_Aspect_Speficifications): Redo handling of delayed evaluation, including optimizing some cases and avoiding delays. (Analyze_Aspects_At_Freeze_Point): Now handled inheriting delayed rep aspects for type derivation case. (Inherit_Delayed_Rep_Aspects): New procedure * sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Now handled inheriting delayed rep aspects for type derivation case. * sem_ch3.adb (Build_Derived_Type): Set May_Inherit_Derived_Rep_Aspects if parent type flag Has_Delayed_Rep_Aspects is set 2013-09-10 Robert Dewar <dewar@adacore.com> * errout.adb (Finalize): Don't delete real errors with specific warning control. 2013-09-10 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Expand_N_Timed_Entry_Call, Expand_N_Conditional_Entry_Call, Expand_N_Asynchronous_Select): Handle properly a trigger that is a call to a primitive operation of a type that implements a limited interface, if the type itself is not limited. From-SVN: r202456
2013-09-10sem_ch3.adb, [...]: Minor reformatting.Robert Dewar9-37/+56
2013-09-10 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sinfo.ads, exp_ch9.adb, sem_prag.adb, sem_ch12.adb, exp_ch4.adb, sprint.adb: Minor reformatting. From-SVN: r202455