[arch-commits] Commit in gcc-multilib/trunk (PKGBUILD pr65882.patch pr66647.patch)
Evangelos Foutras
foutrelis at archlinux.org
Thu Jun 25 03:44:02 UTC 2015
Date: Thursday, June 25, 2015 @ 05:44:01
Author: foutrelis
Revision: 135838
5.1.0-5
Added:
gcc-multilib/trunk/pr66647.patch
Modified:
gcc-multilib/trunk/PKGBUILD
gcc-multilib/trunk/pr65882.patch
---------------+
PKGBUILD | 17 +++++---
pr65882.patch | 106 ++++++++++++++++++++++++++++++++++++++------------------
pr66647.patch | 87 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 171 insertions(+), 39 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-06-25 03:24:53 UTC (rev 135837)
+++ PKGBUILD 2015-06-25 03:44:01 UTC (rev 135838)
@@ -9,8 +9,8 @@
pkgver=5.1.0
_pkgver=5
_islver=0.14.1
-pkgrel=4
-_snapshot=5-20150519
+pkgrel=5
+_snapshot=5-20150623
pkgdesc="The GNU Compiler Collection for multilib"
arch=('x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
@@ -23,10 +23,12 @@
ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
pr65882.patch
+ pr66647.patch
pr66035.patch)
-md5sums=('84f261b2f23e154ec6d9bd4149851a21'
+md5sums=('69432bf92cb6cdc8399c1bfc28c4f801'
'118d1a379abf7606a3334c98a8411c79'
- '9a9cc98e916fd37c7b3dad50f29d2f48'
+ 'f64c1781d8bcac1ea168c2b7091ca2bd'
+ '720df658a726b6e0e541c58296bd5672'
'5b980076cd5fcbc3aff6014f306282dd')
if [ -n "${_snapshot}" ]; then
@@ -54,9 +56,12 @@
# hack! - some configure tests for header files using "$CPP $CPPFLAGS"
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
- # https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01558.html
- patch -p1 -i ${srcdir}/pr65882.patch
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65882
+ patch -p0 -i ${srcdir}/pr65882.patch
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66647
+ patch -p0 -i ${srcdir}/pr66647.patch
+
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035
patch -p1 -i ${srcdir}/pr66035.patch
Modified: pr65882.patch
===================================================================
--- pr65882.patch 2015-06-25 03:24:53 UTC (rev 135837)
+++ pr65882.patch 2015-06-25 03:44:01 UTC (rev 135838)
@@ -1,36 +1,7 @@
-diff --git a/gcc/cp/call.c b/gcc/cp/call.c
-index 7bdf236..689d542 100644
---- a/gcc/cp/call.c
-+++ b/gcc/cp/call.c
-@@ -5677,8 +5677,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
- case TRUTH_ORIF_EXPR:
- case TRUTH_AND_EXPR:
- case TRUTH_OR_EXPR:
-- warn_logical_operator (loc, code, boolean_type_node,
-- code_orig_arg1, arg1, code_orig_arg2, arg2);
-+ if (complain & tf_warning)
-+ warn_logical_operator (loc, code, boolean_type_node,
-+ code_orig_arg1, arg1, code_orig_arg2, arg2);
- /* Fall through. */
- case GT_EXPR:
- case LT_EXPR:
-@@ -5686,8 +5687,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
- case LE_EXPR:
- case EQ_EXPR:
- case NE_EXPR:
-- if ((code_orig_arg1 == BOOLEAN_TYPE)
-- ^ (code_orig_arg2 == BOOLEAN_TYPE))
-+ if ((complain & tf_warning)
-+ && ((code_orig_arg1 == BOOLEAN_TYPE)
-+ ^ (code_orig_arg2 == BOOLEAN_TYPE)))
- maybe_warn_bool_compare (loc, code, arg1, arg2);
- /* Fall through. */
- case PLUS_EXPR:
-diff --git a/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C
-new file mode 100644
-index 0000000..5655eb4
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C
+Index: gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C
+===================================================================
+--- gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C (revision 0)
++++ gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C (revision 224864)
@@ -0,0 +1,32 @@
+// PR c++/65882
+// { dg-do compile { target c++11 } }
@@ -64,3 +35,72 @@
+{
+ foo<int>();
+}
+Index: gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C
+===================================================================
+--- gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C (revision 0)
++++ gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C (revision 224864)
+@@ -0,0 +1,36 @@
++// PR c++/65882
++// PR c++/66467
++// { dg-do compile }
++
++template <bool>
++struct A
++{
++ typedef int type;
++};
++
++struct B
++{
++ static const int value = 0;
++};
++
++template <class>
++struct C
++{
++ typedef int type;
++};
++
++template <class>
++struct F : B {};
++
++class D
++{
++ template <class Expr>
++ typename A<F<typename C<Expr>::type>::value || B::value>::type
++ operator=(Expr); // { dg-message "declared" }
++};
++
++void fn1()
++{
++ D opt;
++ opt = 0; // { dg-error "private" }
++}
+Index: gcc/cp/call.c
+===================================================================
+--- gcc/cp/call.c (revision 224863)
++++ gcc/cp/call.c (revision 224864)
+@@ -5687,8 +5687,9 @@
+ case TRUTH_ORIF_EXPR:
+ case TRUTH_AND_EXPR:
+ case TRUTH_OR_EXPR:
+- warn_logical_operator (loc, code, boolean_type_node,
+- code_orig_arg1, arg1, code_orig_arg2, arg2);
++ if (complain & tf_warning)
++ warn_logical_operator (loc, code, boolean_type_node,
++ code_orig_arg1, arg1, code_orig_arg2, arg2);
+ /* Fall through. */
+ case GT_EXPR:
+ case LT_EXPR:
+@@ -5696,8 +5697,9 @@
+ case LE_EXPR:
+ case EQ_EXPR:
+ case NE_EXPR:
+- if ((code_orig_arg1 == BOOLEAN_TYPE)
+- ^ (code_orig_arg2 == BOOLEAN_TYPE))
++ if ((complain & tf_warning)
++ && ((code_orig_arg1 == BOOLEAN_TYPE)
++ ^ (code_orig_arg2 == BOOLEAN_TYPE)))
+ maybe_warn_bool_compare (loc, code, arg1, arg2);
+ /* Fall through. */
+ case PLUS_EXPR:
Added: pr66647.patch
===================================================================
--- pr66647.patch (rev 0)
+++ pr66647.patch 2015-06-25 03:44:01 UTC (rev 135838)
@@ -0,0 +1,87 @@
+Index: gcc/testsuite/g++.dg/cpp0x/alias-decl-49.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/alias-decl-49.C (revision 0)
++++ gcc/testsuite/g++.dg/cpp0x/alias-decl-49.C (revision 224921)
+@@ -0,0 +1,54 @@
++// PR c++/66647
++// { dg-do compile { target c++11 } }
++
++template <typename _Tp> struct A
++{
++ static constexpr _Tp value = 1;
++};
++template <typename> class B
++{
++public:
++ template <typename> struct rebind
++ {
++ };
++};
++
++template <typename _Alloc, typename _Tp> class C
++{
++ template <typename _Alloc2, typename _Tp2>
++ static A<int> _S_chk (typename _Alloc2::template rebind<_Tp2> *);
++
++public:
++ using __type = decltype (_S_chk<_Alloc, _Tp> (0));
++};
++
++template <typename _Alloc, typename _Tp, int = C<_Alloc, _Tp>::__type::value>
++struct D;
++template <typename _Alloc, typename _Tp> struct D<_Alloc, _Tp, 1>
++{
++ typedef typename _Alloc::template rebind<_Tp> __type;
++};
++template <typename _Alloc> struct F
++{
++ template <typename _Tp> using rebind_alloc = typename D<_Alloc, _Tp>::__type;
++};
++template <typename _Alloc> struct __alloc_traits
++{
++ template <typename> struct rebind
++ {
++ typedef typename F<_Alloc>::template rebind_alloc<int> other;
++ };
++};
++template <typename _Alloc> struct G
++{
++ typename __alloc_traits<_Alloc>::template rebind<int>::other _Tp_alloc_type;
++};
++template <typename _Tp, typename _Alloc = B<_Tp> > class vector : G<_Alloc>
++{
++};
++
++template <int> using tfuncptr = void();
++template <int d> struct H
++{
++ vector<tfuncptr<d> > funcs;
++};
+Index: gcc/cp/pt.c
+===================================================================
+--- gcc/cp/pt.c (revision 224920)
++++ gcc/cp/pt.c (revision 224921)
+@@ -20975,6 +20975,12 @@
+ names a dependent type. */
+ if (TREE_CODE (type) == TYPENAME_TYPE)
+ return true;
++
++ /* An alias template specialization can be dependent even if the
++ resulting type is not. */
++ if (dependent_alias_template_spec_p (type))
++ return true;
++
+ /* -- a cv-qualified type where the cv-unqualified type is
+ dependent.
+ No code is necessary for this bullet; the code below handles
+@@ -21026,10 +21032,6 @@
+ && (any_dependent_template_arguments_p
+ (INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (type)))))
+ return true;
+- /* For an alias template specialization, check the arguments both to the
+- class template and the alias template. */
+- else if (dependent_alias_template_spec_p (type))
+- return true;
+
+ /* All TYPEOF_TYPEs, DECLTYPE_TYPEs, and UNDERLYING_TYPEs are
+ dependent; if the argument of the `typeof' expression is not
More information about the arch-commits
mailing list