1. 23 Apr, 2013 10 commits
    • [multiple changes] · cae64f11
      2013-04-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Dependency_Clause): Update all calls to
      	Analyze_Input_Output.
      	(Analyze_Input_List): Update all calls to Analyze_Input_Output.
      	(Analyze_Input_Output): Add formal parameter Self_Ref along with
      	comment on its usage. Update all calls to Analyze_Input_Output.
      	(Analyze_Pragma): Add new local variable Self_Ref to capture
      	the presence of a self-referential dependency clause. Update
      	all calls to Analyze_Input_Output.
      	(Check_Mode): Add formal parameter Self_Ref along with comment on its
      	usage. Verify the legality of a self-referential output.
      
      2013-04-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb: Add predicate checks on by-copy parameter.
      
      2013-04-23  Vincent Celier  <celier@adacore.com>
      
      	* a-envvar.adb, a-envvar.ads (Value): New.
      
      From-SVN: r198177
      Arnaud Charlet committed
    • coretypes.h (gimple_stmt_iterator): Add struct to make compatible with C. · 08c52234
      * coretypes.h (gimple_stmt_iterator): Add struct to make
      compatible with C.
      
      From-SVN: r198176
      Andreas Schwab committed
    • re PR middle-end/57026 (ice: SSA corruption) · 999c1171
      2013-04-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/57026
      	* tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
      	from SSA names occuring in abnormal PHI nodes.
      
      	* gcc.dg/torture/pr57026.c: New testcase.
      
      From-SVN: r198175
      Richard Biener committed
    • Fix lto report names · 53669259
      Some of the hash tables in lto-report are misnamed in the report.
      Fix this up.
      
      gcc/:
      
      2013-04-22  Andi Kleen  <ak@linux.intel.com>
      
      	* lto/lto.c (print_lto_report_1): Fix LTO report names.
      
      From-SVN: r198174
      Andi Kleen committed
    • Print lto report at the right place · 1a0ad150
      The LTO report is currently printed when the type merging hash tables
      are already destroyed, which makes them always show up as empty.
      Print it earlier. Right now it's printed twice.
      
      gcc/:
      
      2013-04-22  Andi Kleen  <ak@linux.intel.com>
      
      	* lto/lto.c (print_lto_report_1): Declare early.
      	(read_cgraph_and_symbols): Call print_lto_report_1 early.
      
      From-SVN: r198173
      Andi Kleen committed
    • Add -flto-report-wpa · 057f8f20
      -flto-report is useful, but it prints for every LTRANS pass and
      is very noisy and the main problem is often in WPA only.
      
      Add a new -flto-report-wpa option that is only printed for WPA.
      
      gcc/:
      
      2013-04-22  Andi Kleen  <ak@linux.intel.com>
      
      	* common.opt (-flto-report-wpa): Add.
      	* doc/invoke.texi (-flto-report-wpa): Add.
      	* lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
      	(lto_main): dito.
      
      From-SVN: r198172
      Andi Kleen committed
    • Improve pointer hash function to include all bits · 86210f13
      The hashtab pointer hash function is not very good. It throws most of the
      bits in the pointer away.
      
      This changes pointer_hash to use the mix code from jhash function that mixes
      all the bits on the pointer and makes them dependent on each other, before doing
      the modulo.
      
      libiberty/:
      
      2013-04-22  Andi Kleen <ak@linux.intel.com>
      
      	* hashtab.c (hash_pointer): Move to end of file and reimplement.
      
      From-SVN: r198171
      Andi Kleen committed
    • Daily bump. · 7e42a125
      From-SVN: r198168
      GCC Administrator committed
    • Display profile info in graph cfg dump · 473b1e05
      From-SVN: r198165
      Xinliang David Li committed
  2. 22 Apr, 2013 30 commits
    • configure.ac (gcc_cv_as_micromips_support): Use the --fatal-warnings option. · b1485a33
      2013-04-22  Catherine Moore  <clm@codesourcery.com>
                  David Daney <ddaney.cavm@gmail.com>
      
              * configure.ac (gcc_cv_as_micromips_support):  Use the
              --fatal-warnings option.
              * configure: Regenerate.
      
      
      Co-Authored-By: David Daney <ddaney.cavm@gmail.com>
      
      From-SVN: r198164
      Catherine Moore committed
    • Core 1586 · 3df70c62
      	Core 1586
      	* parser.c (cp_parser_unqualified_id): Handle ~auto.
      	(cp_parser_pseudo_destructor_name): Likewise.
      	(cp_parser_postfix_dot_deref_expression): Adjust.
      	(cp_lexer_nth_token_is_keyword): New.
      	* semantics.c (finish_pseudo_destructor_expr): Handle ~auto.
      	* typeck.c (lookup_destructor): Handle ~auto.
      
      From-SVN: r198162
      Jason Merrill committed
    • pt.c (fn_type_unification): Push tinst level around type_unification_real if we aren't explaining. · 3579964b
      gcc/cp/
      	* pt.c (fn_type_unification): Push tinst level around
      	type_unification_real if we aren't explaining.
      	* cp-tree.h (TFF_NO_TEMPLATE_BINDINGS): New.
      	* error.c (dump_function_decl): Respect it.
      	(subst_to_string): Pass it.
      libstdc++-v3/
      	* testsuite/lib/prune.exp (libstdc++-dg-prune): Also ignore "In
      	substitution" lines.
      
      From-SVN: r198161
      Jason Merrill committed
    • re PR c++/48665 (type of const member function) · 80f7a782
      	PR c++/48665
      	* rtti.c (get_typeid): Diagnose qualified function type.
      	* pt.c (tsubst) [POINTER_TYPE]: Likewise.
      
      From-SVN: r198160
      Jason Merrill committed
    • error.c (dump_aggr_type): Fix lambda detection. · af580858
      	* error.c (dump_aggr_type): Fix lambda detection.
      	(dump_simple_decl): Pretty-print capture field.
      
      From-SVN: r198159
      Jason Merrill committed
    • hashtable_policy.h: Add C++11 allocator support. · 0462b6aa
      2013-04-22  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/hashtable_policy.h: Add C++11 allocator support.
      	* include/bits/hashtable.h: Likewise.
      	* include/bits/unordered_set.h: Likewise.
      	* include/bits/unordered_map.h: Likewise.
      	* include/debug/unordered_set: Likewise.
      	* include/debug/unordered_map: Likewise.
      	* include/std/unordered_set: Remove bits/algobase.h
      	include. Replace bits/alloc_traits.h by ext/alloc_traits.h.
      	* include/std/unordered_map: Likewise.
      	* include/ext/throw_allocator.h: Add checks on calls to allocator
      	construct/destroy.
      	(std::hash<__gnu_cxx::throw_value_limit>): Add conditional throw.
      	(std::hash<__gnu_cxx::throw_value_random>): Likewise.
      	* testsuite/util/regression/rand/priority_queue
      	/container_rand_regression_test.tcc: Adapt.
      	* testsuite/util/regression/rand/assoc
      	/container_rand_regression_test.tcc: Likewise.
      	* testsuite/util/testsuite_counter_type.h: Add count of destructors.
      	* testsuite/23_containers/unordered_set
      	/not_default_constructible_hash_neg.cc: Adjust dg-error line number.
      	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Likewise.
      	* testsuite/23_containers/unordered_set/allocator/copy.cc: New.
      	* testsuite/23_containers/unordered_set/allocator/copy_assign.cc: New.
      	* testsuite/23_containers/unordered_set/allocator/minimal.cc: New.
      	* testsuite/23_containers/unordered_set/allocator/move_assign.cc: New.
      	* testsuite/23_containers/unordered_set/allocator/noexcept.cc: New.
      	* testsuite/23_containers/unordered_set/allocator/swap.cc: New.
      	* testsuite/23_containers/unordered_multiset/allocator/copy.cc: New.
      	* testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/allocator/minimal.cc: New.
      	* testsuite/23_containers/unordered_multiset/allocator/move_assign.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/allocator/noexcept.cc: New.
      	* testsuite/23_containers/unordered_multiset/allocator/swap.cc: New.
      	* testsuite/23_containers/unordered_map/allocator/copy.cc: New.
      	* testsuite/23_containers/unordered_map/allocator/copy_assign.cc: New.
      	* testsuite/23_containers/unordered_map/allocator/minimal.cc: New.
      	* testsuite/23_containers/unordered_map/allocator/move_assign.cc: New.
      	* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
      	New.
      	* testsuite/23_containers/unordered_map/allocator/swap.cc: New.
      	* testsuite/23_containers/unordered_multimap/allocator/copy.cc: New.
      	* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
      	New.
      	* testsuite/23_containers/unordered_multimap/allocator/minimal.cc: New.
      	* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
      	New.
      	* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc: New.
      	* testsuite/23_containers/unordered_multimap/allocator/swap.cc: New.
      
      From-SVN: r198158
      François Dumont committed
    • N3323 · ca45eca1
      	* cvt.c (build_expr_type_conversion): Two conversions that return
      	the same type aren't necessarily ambiguous.
      
      From-SVN: r198157
      Jason Merrill committed
    • N3648 · d3d50a61
      	* parser.c (cp_parser_lambda_introducer): Make lambda capture init
      	pedwarn unconditional except in C++1y mode.
      
      From-SVN: r198156
      Jason Merrill committed
    • re PR fortran/53685 (surprising warns about transfer with explicit character range) · e361d18d
      2013-04-22  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/53685
      	PR fortran/57022
      	* check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
      	expressions.
      	* simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
      	of special treatment for EXPR_ARRAY.
      	* target-memory.h (gfc_element_size): New prototype.
      	* target-memory.c (size_array): Remove.
      	(gfc_element_size): New function.
      	(gfc_target_expr_size): Modified to always return the full size of the
      	expression.
      
      
      2013-04-22  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/53685
      	PR fortran/57022
      	* gfortran.dg/transfer_check_4.f90: New.
      
      From-SVN: r198155
      Janus Weil committed
    • semantics.c (potential_constant_expression_1): Don't crash on 'this' in NSDMI. · cefb0898
      	* semantics.c (potential_constant_expression_1): Don't crash on
      	'this' in NSDMI.
      
      From-SVN: r198154
      Jason Merrill committed
    • Core 1612 · 08afbd3b
      	Core 1612
      	* semantics.c (finish_id_expression): Reject capture of anonymous
      	union member.
      
      From-SVN: r198153
      Jason Merrill committed
    • Core 1609 · c10f4193
      	Core 1609
      	* decl2.c (check_default_args): Check for pack expansion.
      
      From-SVN: r198152
      Jason Merrill committed
    • * mangle.c (write_type): Mangle decltype(auto). · a7ddca92
      From-SVN: r198150
      Jason Merrill committed
    • * testsuite/ChangeLog: Fix whitespace. · e973d6dd
      From-SVN: r198148
      Uros Bizjak committed
    • re PR sanitizer/56990 (ICE: SIGFPE with -fsanitize=thread and empty struct) · 829d0168
      	PR sanitizer/56990
      	* tsan.c (instrument_expr): Don't instrument expression
      	in case its size is zero.
      
      	* gcc.dg/pr56990.c: New test.
      
      From-SVN: r198147
      Marek Polacek committed
    • re PR rtl-optimization/57032 (internal compiler error: Max. number of generated… · 6d9b7208
      re PR rtl-optimization/57032 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))
      
      	PR target/57032
      	Revert:
      	2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
      
      	* config/alpha/alpha.c (TARGET_LRA_P): New define.
      
      From-SVN: r198145
      Uros Bizjak committed
    • type_traits (is_signed): Simplify. · 6a4b1a00
      2013-04-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/std/type_traits (is_signed): Simplify.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
      	Adjust dg-error line numbers.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
      	Likewise.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
      
      From-SVN: r198144
      Paolo Carlini committed
    • [Mid-end] Add TARGET_GIMPLE_FOLD_BUILTIN target hook. · ea679d55
      gcc/
      
      	* coretypes.h (gimple_stmt_iterator_d): Forward declare.
      	(gimple_stmt_iterator): New typedef.
      	* gimple.h (gimple_stmt_iterator): Rename to...
      	(gimple_stmt_iterator_d): ... This.
      	* doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
      	trees be valid for GIMPLE and GENERIC.
      	(TARGET_GIMPLE_FOLD_BUILTIN): New.
      	* gimple-fold.c (gimple_fold_call): Call target hook
      	gimple_fold_builtin.
      	* hooks.c (hook_bool_gsiptr_false): New.
      	* hooks.h (hook_bool_gsiptr_false): New.
      	* target.def (fold_stmt): New.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r198142
      James Greenhalgh committed
    • complex (complex<float>::real, [...]): Declare as const member functions. · 9191d7a8
      2013-04-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	N3669
      	* include/std/complex (complex<float>::real, complex<float>::imag,
      	complex<double>::real, complex<double>::imag,
      	complex<long double>::real, complex<long double>::imag): Declare
      	as const member functions.
      	* include/std/type_traits (integral_constant<>::operator value_type):
      	Likewise.
      
      From-SVN: r198141
      Paolo Carlini committed
    • re PR target/57018 (Miscompilation of bison 2.7.1 under "-Os -fomit-frame-pointer") · 88a581da
      2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/57018
      	* lra-eliminations.c (mark_not_eliminable): Prevent elimination of
      	a set sp if no stack realignment.
      
      2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/57018
      	* gcc.target/i386/pr57018.c: New test.
      
      From-SVN: r198140
      Vladimir Makarov committed
    • config.gcc (tilegx-linux): Extend extra_objs rather than overwriting it. · 92be22dc
      	* config.gcc (tilegx-linux): Extend extra_objs rather than
      	overwriting it.
      	(tilepro-linux): Likewise.
      
      From-SVN: r198138
      Nick Clifton committed
    • [AArch64] Map standard pattern names to NEON intrinsics directly. · 0ddec79f
      gcc/
      	* config/aarch64/aarch64-builtins.c
      	(CF): Remove.
      	(CF0, CF1, CF2, CF3, CF4, CF10): New.
      	(VAR<1-12>): Add MAP parameter.
      	(BUILTIN_*): Likewise.
      	* config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
      	* config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
      	(aarch64_ushl_n<mode>): Likewise.
      	(aarch64_sshr_n<mode>): Likewise.
      	(aarch64_ushr_n<mode>): Likewise.
      	(aarch64_<maxmin><mode>): Likewise.
      	(aarch64_sqrt<mode>): Likewise.
      	* config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
      	(vshr<q>_n_*): Likewise.
      
      From-SVN: r198137
      James Greenhalgh committed
    • [AArch64] Support vrecp<esx> neon intrinsics in RTL. · 0050faf8
      gcc/
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_simd_builtin_type_mode): Handle SF types.
      	(sf_UP): Define.
      	(BUILTIN_GPF): Define.
      	(aarch64_init_simd_builtins): Handle SF types.
      	* config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
      	(frecps): Likewise.
      	(frecpx): Likewise.
      	* config/aarch64/aarch64-simd.md
      	(simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
      	(aarch64_frecpe<mode>): New.
      	(aarch64_frecps<mode>): Likewise.
      	* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
      	(v8type): Add frecp<esx>.
      	(aarch64_frecp<FRECP:frecp_suffix><mode>): New.
      	(aarch64_frecps<mode>): Likewise.
      	* config/aarch64/iterators.md (FRECP): New.
      	(frecp_suffix): Likewise.
      	* config/aarch64/arm_neon.h
      	(vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
      
      gcc/testsuite/
      	* gcc.target/aarch64/vrecps.c: New.
      	* gcc.target/aarch64/vrecpx.c: Likewise.
      
      From-SVN: r198136
      James Greenhalgh committed
    • exp_prag.adb (Expand_Pragma_Loop_Variant): Rewrite pragma as null statement if ignored. · ee40cdc0
      2013-04-22  Yannick Moy  <moy@adacore.com>
      
      	* exp_prag.adb (Expand_Pragma_Loop_Variant): Rewrite pragma as
      	null statement if ignored.
      	* sem_ch6.adb (Expand_Contract_Cases): Do nothing if pragma is ignored.
      	* sem_prag.adb (Analyze_Pragma): Keep analyzing ignored pragmas.
      
      From-SVN: r198135
      Yannick Moy committed
    • [multiple changes] · 807b4ca2
      2013-04-22  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Contract_Case): New routine.
      	(Analyze_Pragma): Aspect/pragma Contract_Cases can
      	now be associated with a library level subprogram.
      	Add circuitry to detect illegal uses of aspect/pragma Contract_Cases
      	in a subprogram body.
      	(Chain_Contract_Cases): Rename formal parameter Subp_Decl to
      	Subp_Id. Remove local constant Subp. The entity of the subprogram
      	is now obtained via the formal paramter.
      
      2013-04-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Declaration): Do not set
      	Is_Constr_Subt_For_Unc_Aliased on the subtype of the expression,
      	if the expression is a source entity.
      
      From-SVN: r198134
      Arnaud Charlet committed
    • [multiple changes] · b2c3b537
      2013-04-22  Yannick Moy  <moy@adacore.com>
      
      	* exp_prag.adb, sinfo.ads, sem_prag.ads: Minor correction of typos in
      	comments.
      	* sem_ch6.adb (Expand_Contract_Cases): Add location to message.
      
      2013-04-22  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_prag.adb (Fix_Error): For a pragma rewritten from another
      	pragma, fix up error message to include original pragma name.
      	* par_sco.adb: Minor reformatting.
      
      From-SVN: r198133
      Arnaud Charlet committed
    • sem_prag.adb, [...]: Minor reformatting. · 1a83142e
      2013-04-22  Robert Dewar  <dewar@adacore.com>
      
      	* sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb,
      	sem_ch6.adb, opt.ads: Minor reformatting.
      
      From-SVN: r198132
      Robert Dewar committed
    • exp_ch6.adb: Omit check for init proc. · 1de0ffec
      2013-04-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb: Omit check for init proc.
      
      From-SVN: r198131
      Ed Schonberg committed
    • [multiple changes] · f6820c2d
      2013-04-22  Pascal Obry  <obry@adacore.com>
      
      	* gnat_ugn.texi, prj-nmsc.adb, projects.texi: Add check for
      	Library_Standalone and Library_Kind.
      
      2013-04-22  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Actuals): If the call is to an
      	inherited operation and the actual is a by-reference type with
      	predicates, add predicate call to post-call actions.
      	* sem_util.adb (Is_Inherited_Operation_For_Type): Fix coding
      	error: a type declaration has a defining identifier, not an Etype.
      	* sem_res.adb: Restore code removed because of above error.
      
      2013-04-22  Doug Rupp  <rupp@adacore.com>
      
      	* init.c (__gnat_handle_vms_condition): Also match C$_SIGINT.
      
      From-SVN: r198130
      Arnaud Charlet committed
    • [multiple changes] · 16d3a853
      2013-04-22  Yannick Moy  <moy@adacore.com>
      
      	* gnat_rm.texi, exp_util.adb, sem_prag.adb, sem_prag.ads, par-ch2.adb,
      	opt.ads, sem_ch13.adb: Minor correction of typos in comments/doc.
      
      2013-04-22  Vincent Celier  <celier@adacore.com>
      
      	* prj-nmsc.adb (Check_Library_Attributes): Set Library_Dir to
      	No_Path_Information only when Directories_Must_Exist_In_Projects
      	is False.
      	(Get_Directories): Set Object_Directory
      	or Exec_Directory to No_Path_Information only when
      	Directories_Must_Exist_In_Projects is False.
      
      From-SVN: r198129
      Arnaud Charlet committed