mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +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
|
||||
_islver=0.14.1
|
||||
pkgrel=4
|
||||
_snapshot=5-20150519
|
||||
pkgrel=5
|
||||
_snapshot=5-20150623
|
||||
pkgdesc="The GNU Compiler Collection"
|
||||
arch=('i686' 'x86_64')
|
||||
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
|
||||
http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
|
||||
pr65882.patch
|
||||
pr66647.patch
|
||||
pr66035.patch
|
||||
0001-ARMv5-disable-LDRD-STRD.patch)
|
||||
md5sums=('84f261b2f23e154ec6d9bd4149851a21'
|
||||
md5sums=('69432bf92cb6cdc8399c1bfc28c4f801'
|
||||
'118d1a379abf7606a3334c98a8411c79'
|
||||
'9a9cc98e916fd37c7b3dad50f29d2f48'
|
||||
'f64c1781d8bcac1ea168c2b7091ca2bd'
|
||||
'720df658a726b6e0e541c58296bd5672'
|
||||
'5b980076cd5fcbc3aff6014f306282dd'
|
||||
'924a9bcdd7852410667f04ce18c305d7')
|
||||
|
||||
|
@ -61,8 +63,11 @@ prepare() {
|
|||
# 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
|
||||
|
|
|
@ -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 @@ index 0000000..5655eb4
|
|||
+{
|
||||
+ 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