Commit Graph

121580 Commits

Author SHA1 Message Date
Eric Botcazou
e18600419e trans.c (gnat_to_gnu): Do not translate the Etype of the node before translating the Actions.
* gcc-interface/trans.c (gnat_to_gnu) <N_Expression_With_Actions>: Do
	not translate the Etype of the node before translating the Actions.

From-SVN: r195368
2013-01-22 10:05:45 +00:00
Dodji Seketeli
b0ffaa36f0 PR c++/53609 - Wrong variadic template pack expansion in alias template
Consider this example:

     1	template<class...I> struct List {};
     2	template<int T> struct Z {static const int value = T;};
     3	template<int...T> using LZ = List<Z<T>...>;
     4
     5	template<class...U>
     6	struct F
     7	{
     8	  using N = LZ<U::value...>; //#1 This should amount to List<Z<U::value>...>
     9	}
    10
    11	F<Z<1>, Z<2> >::N A; //#2

which G++ fails to compile, with this error message:

test-PR53609-3.cc: In instantiation of 'struct F<Z<1>, Z<2> >':
test-PR53609-3.cc:11:15:   required from here
test-PR53609-3.cc:3:43: error: wrong number of template arguments (2, should be 1)
 template<int...T> using LZ = List<Z<T>...>;
                                           ^
test-PR53609-3.cc:2:24: error: provided for 'template<int T> struct Z'
 template<int T> struct Z {static const int value = T;};

I think this is because in #1, when we substitute the argument pack
{U::value...} into the pack expansion Z<T>..., tsubst_pack_expansion
yields Z<U::value...>, instead of Z<U::value>..., so the instantiation
of LZ amounts to List<Z<U::value...> >, instead of
List<Z<U::value>...>.

The idea of this patch is to make tsubst_pack_expansion support
substituting an argument pack (into a pack expansion) where one of the
arguments (let's call it the Ith argument) is itself a pack expansion
P.  In that case, the Ith element resulting from the substituting
should be a pack expansion P'.

The pattern of P' is then the pattern of P into which the pattern of
the Ith argument of the argument pack has been substituted.

Tested on x86_64-unknown-linux-gnu against trunk.

gcc/cp/

	* pt.c (argument_pack_element_is_expansion_p)
	(make_argument_pack_select, use_pack_expansion_extra_args_p)
	(gen_elem_of_pack_expansion_instantiation): New static functions.
	(tsubst): When looking through an ARGUMENT_PACK_SELECT tree node,
	look through the possibly resulting pack expansion as well.
	(tsubst_pack_expansion): Use use_pack_expansion_extra_p to
	generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism.
	Use gen_elem_of_pack_expansion_instantiation to build the
	instantiation piece-wise.  Don't use arg_from_parm_pack_p anymore,
	as gen_elem_of_pack_expansion_instantiation and the change in
	tsubst above generalize this particular case.
	(arg_from_parm_pack_p): Remove this for it's not used by
	tsubst_pack_expansion anymore.

gcc/testsuite/

	* g++.dg/cpp0x/variadic139.C: New test.
	* g++.dg/cpp0x/variadic140.C: Likewise.
	* g++.dg/cpp0x/variadic141.C: Likewise.

From-SVN: r195367
2013-01-22 11:05:05 +01:00
Eric Botcazou
257e81a619 trans.c (Pragma_to_gnu): Use optimize_size instead of optimize and adjust warning message.
* gcc-interface/trans.c (Pragma_to_gnu) <Name_Space>: Use optimize_size
	instead of optimize and adjust warning message.
	(Compilation_Unit_to_gnu): Process pragmas preceding the unit.

From-SVN: r195366
2013-01-22 10:01:08 +00:00
Tristan Gingold
48a24fcfc3 gigi.h (ADT_unhandled_except_decl, [...]): New.
* gcc-interface/gigi.h (ADT_unhandled_except_decl,
	ADT_unhandled_others_decl): New.
	(unhandled_others_decl, unhandled_except_decl): Define.
	* gcc-interface/trans.c: Include common/common-target.h.
	(gigi): Initialize them.
	(Subprogram_Body_to_gnu): On SEH targets, wrap the body of the main
	function in a try/catch clause.

From-SVN: r195364
2013-01-22 09:49:14 +00:00
Jakub Jelinek
7ab53cfdf6 re PR libquadmath/56072 (info page wrongly defines M_PI_2 and M_PI_4)
PR libquadmath/56072
	* libquadmath.texi (M_PI_2q, M_PI_4q): Fix up description.

From-SVN: r195360
2013-01-22 09:23:32 +01:00
Jason Merrill
dcdb8613c2 re PR c++/56059 (SIGSEGV on invalid C++11 code)
PR c++/56059
	* tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
	template args count.

From-SVN: r195355
2013-01-21 20:27:19 -05:00
GCC Administrator
d2ae47e5f6 Daily bump.
From-SVN: r195354
2013-01-22 00:18:12 +00:00
Uros Bizjak
d0be5ae58f * config/i386/i386.md (isa): Switch places of fma and fma4.
From-SVN: r195350
2013-01-21 20:45:05 +01:00
Thomas Koenig
bfc1665471 re PR fortran/55919 (Bogus warning with -J directory/)
2013-01-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/55919
	* scanner.c (add_path_to_list): Copy path to temporary and strip
	trailing directory separators before calling stat().

2013-01-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/55919
	* gfortran.dg/include_8.f90:  New test.

From-SVN: r195348
2013-01-21 19:34:49 +00:00
Uros Bizjak
62e896818a * testsuite/ChangeLog: Fix duplicate entry.
From-SVN: r195347
2013-01-21 19:54:49 +01:00
Uros Bizjak
4e913a2634 pr55579.c: Cleanup esra tree dump
* gcc.dg/tree-ssa/pr55579.c: Cleanup esra tree dump
	* gfortran.dg/unlimited_polymorphic_8.f90: Cleanup original tree dump.

From-SVN: r195346
2013-01-21 19:47:19 +01:00
Jakub Jelinek
8f498c1bdc re PR tree-optimization/56051 (Wrong expression evaluation)
PR tree-optimization/56051
	* fold-const.c (fold_binary_loc): Don't fold
	X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
	a narrowing conversion, or widening conversion from signed
	to unsigned.

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

From-SVN: r195343
2013-01-21 18:55:34 +01:00
Uros Bizjak
35d59da7f7 re PR rtl-optimization/56023 ([alpha] -fcompare-debug failure due to sched1 pass)
PR rtl-optimization/56023
	* haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
	dependent on debug instruction.

testsuite/ChangeLog:

	PR rtl-optimization/56023
	* gcc.dg/pr56023.c: New test.

From-SVN: r195342
2013-01-21 18:51:23 +01:00
Martin Jambor
5b9db1bc19 re PR middle-end/56022 (ICE (segfault) at convert_memory_address_addr_space (explow.c:334))
2013-01-21  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/56022
	* function.c (allocate_struct_function): Call
	invoke_set_current_function_hook earlier.

testsuite/
	* gcc.target/i386/pr56022.c: New test.

From-SVN: r195341
2013-01-21 18:16:57 +01:00
Jason Merrill
f6c23342da * lib/target-supports.exp (check_effective_target_alias): New.
From-SVN: r195338
2013-01-21 10:49:21 -05:00
Jakub Jelinek
e8bb7d68e0 reload1.c (init_reload): Only initialize reload_obstack during the first call.
* reload1.c (init_reload): Only initialize reload_obstack
	during the first call.

From-SVN: r195335
2013-01-21 15:55:05 +01:00
Marek Polacek
616a4e32ec Fix up English grammar
From-SVN: r195334
2013-01-21 13:14:17 +00:00
Yi-Hsiu Hsu
4401981b41 marvell-pj4.md (pj4_shift_conds, [...]): Handle simple_alu_shift.
2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>

	* config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
	pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.

From-SVN: r195333
2013-01-21 10:55:15 +00:00
Ramana Radhakrishnan
8e87740bab Fix up wrong marvell-pj4.md file committed earlier and update copyright year.
2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/56058
	* config/arm/marvell-pj4.md: Update copyright year.
	Fix up use of alu to alu_reg and simple_alu_imm.

From-SVN: r195332
2013-01-21 10:45:05 +00:00
Uros Bizjak
1f6bc337e4 i386.md (enabled): Do not disable fma4 for TARGET_FMA.
* config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.

From-SVN: r195331
2013-01-21 11:33:55 +01:00
Andi Kleen
318c94c0d5 Fix PR number in ChangeLog
From-SVN: r195330
2013-01-21 01:24:10 +00:00
GCC Administrator
f4fea24afb Daily bump.
From-SVN: r195329
2013-01-21 00:19:08 +00:00
Jack Howarth
9d7302a19b re PR debug/53235 (20120504 broke -fdebug-types-section)
2013-01-20  Jack Howarth <howarth@bromo.med.uc.edu>

	    PR debug/53235
	    * g++.dg/debug/dwarf2/nested-4.C: XFAIL on darwin.

From-SVN: r195326
2013-01-20 20:35:48 +00:00
Yi-Hsiu Hsu
92607e4184 Check in missing file for:
Add support for Marvell's PJ4 CPU

2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
            Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/arm/marvell-pj4.md: New file.

From-SVN: r195325
2013-01-20 20:35:23 +00:00
Hans-Peter Nilsson
5a36c5b2ec * gfortran.dg/inquire_10.f90: Run only for non-newlib targets.
From-SVN: r195324
2013-01-20 19:47:35 +00:00
Vladimir Makarov
89d56d793c re PR target/55433 ([LRA] ICE on excessive reloads)
2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55433
	* lra-constraints.c (curr_insn_transform): Don't reuse original
	insn for secondary memory move when memory mode should be
	different.

From-SVN: r195322
2013-01-20 19:09:58 +00:00
Andi Kleen
d76b6ea417 libstdc++: Add mem_order_hle_acquire/release to atomic.h v2
The underlying compiler supports additional __ATOMIC_HLE_ACQUIRE/RELEASE
memmodel flags for TSX, but this was not exposed to the C++ wrapper.
Handle it there.

These are additional flags, so some of assert checks need to mask
off the flags before checking the memory model type.

libstdc++-v3/:
2013-01-12  Andi Kleen  <ak@linux.intel.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

        PR libstdc++/55223
	* include/bits/atomic_base.h (__memory_order_modifier): Add
	__memory_order_mask, __memory_order_modifier_mask,
	__memory_order_hle_acquire, __memory_order_hle_release.
	(operator|,operator&): Add.
	(__cmpexch_failure_order):  Rename to __cmpexch_failure_order2.
	(__cmpexch_failure_order): Add.
	(clear, store, load, compare_exchange_weak, compare_exchange_strong):
	Handle flags.
	* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
	Add.

Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>

From-SVN: r195321
2013-01-20 19:03:22 +00:00
John David Anglin
fe6035536a pa.md (atomic_loaddi, [...]): New patterns.
* config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
	atomic_storedi_1): New patterns.

From-SVN: r195320
2013-01-20 14:40:16 +00:00
Venkataramanan Kumar
0128489557 Add AMD btver2 pipeline descriptions
From-SVN: r195319
2013-01-20 10:42:01 +00:00
Jeff Law
5630e3e157 re PR tree-optimization/52631 (VN does not use simplified expression for lookup)
PR tree-optimization/52631
        * tree-ssa-sccvn (visit_use): Before looking up the original
        statement, try looking up the simplified expression.

        PR tree-optimization/52631
        * tree-ssa/pr52631.c: New test.
        * tree-ssa/ssa-fre-9: Update expected output.

From-SVN: r195318
2013-01-19 22:00:56 -07:00
GCC Administrator
424bac9482 Daily bump.
From-SVN: r195317
2013-01-20 00:18:29 +00:00
Jonathan Wakely
c93fa3ca7e re PR libstdc++/55861 ([C++11] `std::shared_future::get' is not const-qualified)
PR libstdc++/55861
	* include/std/future (_State_base::_S_check(const shared_ptr<T>&)):
	Fix return type.
	(__basic_future::_M_get_result()): Const qualify.
	(shared_future::get()): Likewise.
	* testsuite/30_threads/shared_future/members/get.cc: Use const
	objects.

From-SVN: r195314
2013-01-19 23:42:55 +00:00
Jason Merrill
3122f3b1b8 correct dg-require-alias use in TLS tests
From-SVN: r195313
2013-01-19 10:35:03 -05:00
Anthony Green
cdecf7e964 Fix test case for moxie
From-SVN: r195312
2013-01-19 13:48:54 +00:00
Anthony Green
650ae806f0 Set current_function_static_stack_size for moxie.
From-SVN: r195311
2013-01-19 13:48:16 +00:00
Jason Merrill
5af057d8bd re PR target/54908 (misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables)
PR target/54908
c-family/
	* c.opt (-fextern-tls-init): New.
	* c-opts.c (c_common_post_options): Handle it.
cp/
	* decl2.c (get_local_tls_init_fn): New.
	(get_tls_init_fn): Handle flag_extern_tls_init.  Don't bother
	with aliases for internal variables.  Don't use weakrefs if
	the variable needs destruction.
	(generate_tls_wrapper): Mark the wrapper as const if no
	initialization is needed.
	(handle_tls_init): Don't require aliases.

From-SVN: r195310
2013-01-19 00:25:25 -05:00
GCC Administrator
fd36469e79 Daily bump.
From-SVN: r195309
2013-01-19 00:18:47 +00:00
Jakub Jelinek
e300ec2d1c re PR tree-optimization/56029 (ICE: verify_gimple failed, location references block not in block tree)
PR tree-optimization/56029
	* tree-phinodes.c (reserve_phi_args_for_new_edge): Set
	gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.

	* g++.dg/torture/pr56029.C: New test.

From-SVN: r195304
2013-01-18 21:24:34 +01:00
Sharad Singhai
a3d7af0411 re PR tree-optimization/55995 (vect increase_alignment notes missing from dump file)
2013-01-18  Sharad Singhai  <singhai@google.com>

	PR tree-optimization/55995
	* dumpfile.c (dump_loc): Print location only if available.
	* tree-vectorizer.c (increase_alignment): Intialize vect_location.

testsuite/ChangeLog
	PR tree-optimization/55995
	* gcc.dg/vect/vect.exp: Use "details" flags for dump info.

From-SVN: r195303
2013-01-18 18:26:04 +00:00
Vladimir Makarov
66aa7879c8 re PR target/55433 ([LRA] ICE on excessive reloads)
2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55433
	* lra-constraints.c (curr_insn_transform): Reuse original insn for
	secondary memory move.
	(inherit_reload_reg): Use rclass instead of cl for
	check_secondary_memory_needed_p.

2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55433
	* gcc.target/i386/pr55433.c: New.

From-SVN: r195302
2013-01-18 18:14:52 +00:00
Jakub Jelinek
3f0fee7b4d re PR middle-end/56015 (expand expands p[9] = COMPLEX_EXPR <-IMAGPART_EXPR <p[9]>, REALPART_EXPR <p[9]>>; incorrectly.)
PR middle-end/56015
	* expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
	the case where writing real complex part of target modifies
	op1.

	* gfortran.dg/pr56015.f90: New test.

From-SVN: r195301
2013-01-18 18:15:07 +01:00
Janis Johnson
b69a7864fb * gcc.dg/vect/vect-multitypes-12.c: Refactor dg-final directive.
From-SVN: r195299
2013-01-18 17:01:40 +00:00
James Greenhalgh
70c6769377 [AArch64] Fix unordered comparisons to floating-point vcond.
gcc/
	* config/aarch64/aarch64-simd.md
	(aarch64_vcond_internal<mode>): Handle unordered cases.
	* config/aarch64/iterators.md (v_cmp_result): New.

gcc/testsuite/
	* gcc.target/aarch64/vect-fcm-gt-f.c: Change expected output.
	* gcc.target/aarch64/vect-fcm-gt-d.c: Likewise.
	* gcc.target/aarch64/vect-fcm-ge-f.c: Likewise.
	* gcc.target/aarch64/vect-fcm-ge-d.c: Likewise.
	* gcc.target/aarch64/vect-fcm-eq-f.c: Likewise.

From-SVN: r195297
2013-01-18 16:34:10 +00:00
Jeff Law
f5ce60b6a2 pr52573.c: Move to...
* gcc.dg/pr52573.c: Move to...
        * gcc.target/m68k/pr52573.c: Here.  Eliminate target selector.

From-SVN: r195296
2013-01-18 09:30:51 -07:00
Yi-Hsiu Hsu
df8de9b3d6 Add support for Marvell's PJ4 CPU
2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/marvell-pj4.md: New file.
	* config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
	* config/arm/arm.md (generic_sched): Add marvell_pj4.
	(generic_vfp): Likewise.
	* config/arm/arm-cores.def: Add marvell-pj4.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
	* doc/invoke.texi: Document marvell-pj4.




Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

From-SVN: r195295
2013-01-18 14:26:15 +00:00
Tejas Belagod
be30c35692 arm_neon.h: Map scalar types to standard types.
2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>

gcc/
	* config/aarch64/arm_neon.h: Map scalar types to standard types.

From-SVN: r195293
2013-01-18 13:41:58 +00:00
Alexandre Oliva
c350ba539e Mention PR debug/56006 in earlier commit for PR rtl-optimization/55547.
From-SVN: r195292
2013-01-18 11:05:04 +00:00
Alexandre Oliva
af6236c19d re PR debug/54114 (VTA compile-time performance could be improved)
PR debug/54114
PR debug/54402
PR debug/49888
* var-tracking.c (negative_power_of_two_p): New.
(global_get_addr_cache, local_get_addr_cache): New.
(get_addr_from_global_cache, get_addr_from_local_cache): New.
(vt_canonicalize_addr): Rewrite using the above.  Adjust the
heading comment.
(vt_stack_offset_p): Remove.
(vt_canon_true_dep): Always canonicalize loc's address.
(clobber_overlapping_mems): Make sure we have a MEM.
(local_get_addr_clear_given_value): New.
(val_reset): Clear local cached entries.
(compute_bb_dataflow): Create and release the local cache.
Disable duplicate MEMs clobbering.
(emit_notes_in_bb): Clobber MEMs likewise.
(vt_emit_notes): Create and release the local cache.
(vt_initialize, vt_finalize): Create and release the global
cache, respectively.
* alias.c (rtx_equal_for_memref_p): Compare operands of
ENTRY_VALUEs.

From-SVN: r195291
2013-01-18 10:58:15 +00:00
Alexandre Oliva
7ff37ffa08 re PR libmudflap/53359 (undefined reference to `__gnu_cxx::__numeric_traits_integer<int>::__min')
PR libmudflap/53359
* tree-mudflap.c (mudflap_finish_file): Skip deferred decls
not found in the symtab.

From-SVN: r195290
2013-01-18 10:57:58 +00:00
Alexandre Oliva
3aa035178c re PR rtl-optimization/55547 (Alias analysis does not handle AND addresses correctly)
PR rtl-optimization/55547
PR rtl-optimization/53827
PR debug/53671
PR debug/49888
* alias.c (offset_overlap_p): New, factored out of...
(memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
the conservative special case for symbolic constants.  Don't
adjust zero sizes on alignment.

From-SVN: r195289
2013-01-18 10:57:36 +00:00