1. 22 Jan, 2013 8 commits
    • re PR libgomp/51376 (libgomp taskwait failure) · 9a647288
      	PR libgomp/51376
      	PR libgomp/56073
      	* task.c (GOMP_task): Revert 2011-12-09 change.
      	(GOMP_taskwait): Likewise.  Instead use atomic load with acquire
      	barrier to read task->children..
      	(gomp_barrier_handle_tasks): ..and matching atomic store with
      	release barrier here when setting parent->children to NULL.
      
      From-SVN: r195370
      Alan Modra committed
    • trans.c (gnat_to_gnu): Do not translate the Etype of the node before translating the Actions. · e1860041
      	* 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
      Eric Botcazou committed
    • PR c++/53609 - Wrong variadic template pack expansion in alias template · b0ffaa36
      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
      Dodji Seketeli committed
    • trans.c (Pragma_to_gnu): Use optimize_size instead of optimize and adjust warning message. · 257e81a6
      	* 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
      Eric Botcazou committed
    • gigi.h (ADT_unhandled_except_decl, [...]): New. · 48a24fcf
      	* 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
      Tristan Gingold committed
    • re PR libquadmath/56072 (info page wrongly defines M_PI_2 and M_PI_4) · 7ab53cfd
      	PR libquadmath/56072
      	* libquadmath.texi (M_PI_2q, M_PI_4q): Fix up description.
      
      From-SVN: r195360
      Jakub Jelinek committed
    • re PR c++/56059 (SIGSEGV on invalid C++11 code) · dcdb8613
      	PR c++/56059
      	* tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default
      	template args count.
      
      From-SVN: r195355
      Jason Merrill committed
    • Daily bump. · d2ae47e5
      From-SVN: r195354
      GCC Administrator committed
  2. 21 Jan, 2013 15 commits
  3. 20 Jan, 2013 9 commits
  4. 19 Jan, 2013 6 commits
  5. 18 Jan, 2013 2 commits