Skip to content
Snippets Groups Projects
  1. Nov 16, 2012
    • Dodji Seketeli's avatar
      PR c++/54875 - Error with alias template that resolves to an enum · 26f2269f
      Dodji Seketeli authored
      Consider this short example:
      
           1	template<typename T>
           2	using AddConst = T const;
           3
           4	enum FwdEnum : int;
           5
           6	int main() {
           7	  AddConst<FwdEnum> *ptr = nullptr;
           8	}
      
      At line 7, when we build the type for AddConst<FwdEnum> in
      lookup_template_class_1, the resulting type is the enum FwdEnum.  This
      confuses lookup_template_class_1 near the if below, wrongly making it
      taking the branch and thus calling tsubst_enum while it shouldn't:
      
            if (TREE_CODE (t) == ENUMERAL_TYPE && !is_dependent_type)
      	/* Now that the type has been registered on the instantiations
      	   list, we set up the enumerators.  Because the enumeration
      	   constants may involve the enumeration type itself, we make
      	   sure to register the type first, and then create the
      	   constants.  That way, doing tsubst_expr for the enumeration
      	   constants won't result in recursive calls here; we'll find
      	   the instantiation and exit above.  */
      	tsubst_enum (template_type, t, arglist);
      
      Before the alias template feature, the only reason why TREE_CODE (t)
      == ENUMERAL_TYPE would be true is when lookup_template_class_1 is
      called for an enum that is a member of a class template.  But that
      condition can be also true for an alias template instantiation.
      
      So I guess that condition should be changed to TREE_CODE
      (template_type) == ENUMERAL_TYPE, to specifically detect the member
      enum of a class template case.  Note that for the alias template
      instantiation case above, template_type points to a TEMPLATE_TYPE_PARM
      which name is AddConst.
      
      This is what the patchlet below does.
      
      Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
      
      gcc/cp/
      
      	* pt.c (lookup_template_class_1): Look at the type of the
      	potential member enum of class template to determine if we are
      	actually substituting into a member enum of class template.
      
      gcc/testsuite/
      
      	* g++.dg/cpp0x/alias-decl-27.C: New test.
      
      From-SVN: r193562
      26f2269f
    • Tom Tromey's avatar
      configure.ac: Invoke AM_MAINTAINER_MODE. · 2b723e21
      Tom Tromey authored
      	* configure.ac: Invoke AM_MAINTAINER_MODE.
      	* aclocal.m4, configure, Makefile.in, asan/Makefile.in,
      	interception/Makefile.in, sanitizer_common/Makefile.in: Rebuild.
      
      From-SVN: r193561
      2b723e21
    • Matthias Klose's avatar
      t-linux: New file; define MULTIARCH_DIRNAME. · 26841e45
      Matthias Klose authored
      2012-11-16  Matthias Klose  <doko@ubuntu.com>
      
              * config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
              * config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
              Include pa/t-linux.
      
      From-SVN: r193560
      26841e45
    • Uros Bizjak's avatar
      * lib/target-supports.exp · f8cc9a48
      Uros Bizjak authored
      	(check_effective_target_has_w_floating_suffix): Use options for c++ only.
      	(check_effective_target_has_q_floating_suffix): Ditto.
      
      From-SVN: r193559
      f8cc9a48
    • Jakub Jelinek's avatar
      re PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in... · ba29e5c2
      Jakub Jelinek authored
      re PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_equal, at cp/tree.c:2608)
      
      	PR c++/55337
      	* tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P
      	only on SIZEOF_EXPR.
      
      	* g++.dg/template/alignof2.C: New test.
      
      From-SVN: r193558
      ba29e5c2
    • H.J. Lu's avatar
      Define/use hardware pointer type for stack unwind · d1caed14
      H.J. Lu authored
      	PR other/55333
      	* include/sanitizer/common_interface_defs.h (uhwptr): New type
      	for hardware pointer.
      	* sanitizer_common/sanitizer_stacktrace.cc (StackTrace::FastUnwindStack):
      	Replace uptr with uhwptr for stack unwind.
      
      From-SVN: r193557
      d1caed14
    • Uros Bizjak's avatar
      * ChangeLog: Add ChangeLog entry for my last commit. · 8108af84
      Uros Bizjak authored
      From-SVN: r193556
      8108af84
    • Uros Bizjak's avatar
      mv1.C (dg-options): Add -march=x86-64. · 001304c1
      Uros Bizjak authored
      	* g++.dg/mv1.C (dg-options): Add -march=x86-64.
      	* g++.dg/mv6.C (dg-options): Ditto.
      
      From-SVN: r193555
      001304c1
    • Jakub Jelinek's avatar
      re PR tree-optimization/54073 (SciMark Monte Carlo test performance has... · dd88c722
      Jakub Jelinek authored
      re PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously decreased in recent GCC releases)
      
      	PR target/54073
      	* config/i386/i386.md (mov<mode>cc): Use comparison_operator
      	instead of ordered_comparison_operator resp.
      	ix86_fp_comparison_operator predicates.
      	* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
      	or for -m32 DImode comparisons.
      
      From-SVN: r193554
      dd88c722
    • Jan Hubicka's avatar
      re PR tree-optimization/54717 (Runtime regression: polyhedron test "rnflow" degraded) · 0c46ead2
      Jan Hubicka authored
      	PR tree-optimization/54717
      	* tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges
      	with ANTIC_IN.
      
      From-SVN: r193553
      0c46ead2
    • Dodji Seketeli's avatar
      Enable building of libsanitizer on sparc linux · f3754998
      Dodji Seketeli authored
      libsanitizer/ChangeLog:
      
      	* configure.tgt: Enable sparc linux.
      
      From-SVN: r193552
      f3754998
    • Uros Bizjak's avatar
      * lib/target_suports.exp · 589f95d6
      Uros Bizjak authored
      	(check_effective_target_has_w_floating_suffix): New procedure.
      	(check_effective_target_has_q_floating_suffix): Ditto.
      	* g++.dg/cpp0x/gnu_fext-numeric-literals.C: Add dg-error directive
      	for unsupported non-standard suffix on floating constant.
      	* g++.dg/cpp0x/std_fext-numeric-literals.C: Ditto.
      
      From-SVN: r193551
      589f95d6
    • Uros Bizjak's avatar
      i386-protos.h (ix86_emit_mode_set): Add third argument. · 5756eff7
      Uros Bizjak authored
      	* config/i386/i386-protos.h (ix86_emit_mode_set): Add third argument.
      	* config/i386/i386.h (EMIT_MODE_SET): Update.
      	* config/i386/i386.c (ix86_avx_emit_vzeroupper): New function.
      	(ix86_emit_mode_set) <AVX_U128>: Call ix86_avx_emit_vzeroupper.
      
      From-SVN: r193550
      5756eff7
    • Ganesh Gopalasubramanian's avatar
      AMD bdver3 enablement · 4888636e
      Ganesh Gopalasubramanian authored
      From-SVN: r193549
      4888636e
    • Ganesh Gopalasubramanian's avatar
      AMD bdver3 enablement · eb2f2b44
      Ganesh Gopalasubramanian authored
      From-SVN: r193548
      eb2f2b44
    • David S. Miller's avatar
      Fix gcc.c-torture/compile/pr53410-2.c on sparc. · 91764ab8
      David S. Miller authored
      	* expmed.c (expand_shift_1): Don't strip non-integral SUBREGs.
      
      From-SVN: r193547
      91764ab8
    • GCC Administrator's avatar
      Daily bump. · 8b9bf07a
      GCC Administrator authored
      From-SVN: r193546
      8b9bf07a
  2. Nov 15, 2012
  3. Nov 14, 2012
    • Sterling Augustine's avatar
      re PR debug/55328 (ICE: in output_addr_table_entry, at dwarf2out.c:21780 with -gsplit-dwarf) · bc6a3395
      Sterling Augustine authored
      2012-11-14  Sterling Augustine  <saugustine@google.com>
      
      	PR debug/55328
      	* dwarf2out.c (index_address_table_entry): Check a node's refcount.
      
      From-SVN: r193515
      bc6a3395
    • Jonathan Wakely's avatar
      re PR libstdc++/55320 (Invalid delete with throwing copy-c'tor passed to std::function) · 99ace34a
      Jonathan Wakely authored
      	PR libstdc++/55320
      	* include/std/functional (function::function(F)): Set _M_manager after
      	operations that could throw.
      	(_Function_base::_Ref_manager::_M_init_functor): Use addressof.
      	* include/tr1/functional
      	(_Function_base::_Ref_manager::_M_init_functor): Use addressof.
      	(_Function_base::_Base_manager::_M_get_pointer): Likewise.
      	* testsuite/20_util/function/cons/55320.cc: New.
      	* testsuite/20_util/function/cons/addressof.cc: New.
      	* testsuite/20_util/function/cons/callable.cc: Remove header.
      	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
      	* testsuite/tr1/3_function_objects/function/10.cc: New.
      
      From-SVN: r193514
      99ace34a
Loading