mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-02-27 00:10:29 +00:00
core/gcc to 5.1.0-5
This commit is contained in:
parent
4aafa38066
commit
3ee4e3a5d9
3 changed files with 171 additions and 39 deletions
|
@ -18,8 +18,8 @@ pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-go')
|
||||||
pkgver=5.1.0
|
pkgver=5.1.0
|
||||||
_pkgver=5
|
_pkgver=5
|
||||||
_islver=0.14.1
|
_islver=0.14.1
|
||||||
pkgrel=4
|
pkgrel=5
|
||||||
_snapshot=5-20150519
|
_snapshot=5-20150623
|
||||||
pkgdesc="The GNU Compiler Collection"
|
pkgdesc="The GNU Compiler Collection"
|
||||||
arch=('i686' 'x86_64')
|
arch=('i686' 'x86_64')
|
||||||
license=('GPL' 'LGPL' 'FDL' 'custom')
|
license=('GPL' 'LGPL' 'FDL' 'custom')
|
||||||
|
@ -31,11 +31,13 @@ source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
|
||||||
ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
|
ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
|
||||||
http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
|
http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
|
||||||
pr65882.patch
|
pr65882.patch
|
||||||
|
pr66647.patch
|
||||||
pr66035.patch
|
pr66035.patch
|
||||||
0001-ARMv5-disable-LDRD-STRD.patch)
|
0001-ARMv5-disable-LDRD-STRD.patch)
|
||||||
md5sums=('84f261b2f23e154ec6d9bd4149851a21'
|
md5sums=('69432bf92cb6cdc8399c1bfc28c4f801'
|
||||||
'118d1a379abf7606a3334c98a8411c79'
|
'118d1a379abf7606a3334c98a8411c79'
|
||||||
'9a9cc98e916fd37c7b3dad50f29d2f48'
|
'f64c1781d8bcac1ea168c2b7091ca2bd'
|
||||||
|
'720df658a726b6e0e541c58296bd5672'
|
||||||
'5b980076cd5fcbc3aff6014f306282dd'
|
'5b980076cd5fcbc3aff6014f306282dd'
|
||||||
'924a9bcdd7852410667f04ce18c305d7')
|
'924a9bcdd7852410667f04ce18c305d7')
|
||||||
|
|
||||||
|
@ -61,8 +63,11 @@ prepare() {
|
||||||
# hack! - some configure tests for header files using "$CPP $CPPFLAGS"
|
# hack! - some configure tests for header files using "$CPP $CPPFLAGS"
|
||||||
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
|
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
|
||||||
|
|
||||||
# https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01558.html
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65882
|
||||||
patch -p1 -i ${srcdir}/pr65882.patch
|
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
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035
|
||||||
patch -p1 -i ${srcdir}/pr66035.patch
|
patch -p1 -i ${srcdir}/pr66035.patch
|
||||||
|
|
|
@ -1,36 +1,7 @@
|
||||||
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
|
Index: gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C
|
||||||
index 7bdf236..689d542 100644
|
===================================================================
|
||||||
--- a/gcc/cp/call.c
|
--- gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C (revision 0)
|
||||||
+++ b/gcc/cp/call.c
|
+++ gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C (revision 224864)
|
||||||
@@ -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
|
|
||||||
@@ -0,0 +1,32 @@
|
@@ -0,0 +1,32 @@
|
||||||
+// PR c++/65882
|
+// PR c++/65882
|
||||||
+// { dg-do compile { target c++11 } }
|
+// { dg-do compile { target c++11 } }
|
||||||
|
@ -64,3 +35,72 @@ index 0000000..5655eb4
|
||||||
+{
|
+{
|
||||||
+ foo<int>();
|
+ 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:
|
||||||
|
|
87
core/gcc/pr66647.patch
Normal file
87
core/gcc/pr66647.patch
Normal file
|
@ -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
|
Loading…
Reference in a new issue