[arch-commits] Commit in gcc-multilib/trunk (PKGBUILD gcc-4.8-lambda-ICE.patch)

Jan Steffens heftig at nymeria.archlinux.org
Mon Nov 11 00:52:59 UTC 2013


    Date: Monday, November 11, 2013 @ 01:52:59
  Author: heftig
Revision: 100791

4.8.2-4

Added:
  gcc-multilib/trunk/gcc-4.8-lambda-ICE.patch
Modified:
  gcc-multilib/trunk/PKGBUILD

--------------------------+
 PKGBUILD                 |   13 +++++++++----
 gcc-4.8-lambda-ICE.patch |   35 +++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-11-10 20:07:26 UTC (rev 100790)
+++ PKGBUILD	2013-11-11 00:52:59 UTC (rev 100791)
@@ -7,7 +7,7 @@
 
 pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
 pkgver=4.8.2
-pkgrel=3
+pkgrel=4
 #_snapshot=4.8-20130725
 pkgdesc="The GNU Compiler Collection for multilib"
 arch=('x86_64')
@@ -19,9 +19,11 @@
 options=('!emptydirs')
 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
-        gcc-4.8-filename-output.patch)
+        gcc-4.8-filename-output.patch
+        gcc-4.8-lambda-ICE.patch)
 md5sums=('a3d7d63b9cb6b6ea049469a0c4a43c9d'
-         '40cb437805e2f7a006aa0d0c3098ab0f')
+         '40cb437805e2f7a006aa0d0c3098ab0f'
+         '6eb6e080dbf7bc6825f53a0aaa6c4ef9')
 
 
 if [ -n "${_snapshot}" ]; then
@@ -46,7 +48,10 @@
 
   # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
   patch -p0 -i ${srcdir}/gcc-4.8-filename-output.patch
-
+  
+  # http://gcc.gnu.org/bugzilla//show_bug.cgi?id=56710 - commit 3d1f8279
+  patch -p1 -i ${srcdir}/gcc-4.8-lambda-ICE.patch
+  
   mkdir ${srcdir}/gcc-build
 }
 

Added: gcc-4.8-lambda-ICE.patch
===================================================================
--- gcc-4.8-lambda-ICE.patch	                        (rev 0)
+++ gcc-4.8-lambda-ICE.patch	2013-11-11 00:52:59 UTC (rev 100791)
@@ -0,0 +1,35 @@
+diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
+index 0b8e2f7..ad1c209 100644
+--- a/gcc/cp/semantics.c
++++ b/gcc/cp/semantics.c
+@@ -2719,8 +2719,10 @@ finish_member_declaration (tree decl)
+ 					      /*friend_p=*/0);
+ 	}
+     }
+-  /* Enter the DECL into the scope of the class.  */
+-  else if (pushdecl_class_level (decl))
++  /* Enter the DECL into the scope of the class, if the class
++     isn't a closure (whose fields are supposed to be unnamed).  */
++  else if (CLASSTYPE_LAMBDA_EXPR (current_class_type)
++	   || pushdecl_class_level (decl))
+     {
+       if (TREE_CODE (decl) == USING_DECL)
+ 	{
+diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C
+new file mode 100644
+index 0000000..df2b037
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-names1.C
+@@ -0,0 +1,9 @@
++// PR c++/56710
++// { dg-options "-std=c++11 -Wall" }
++
++int main()
++{
++    int t = 0;
++    return [&]() -> int {int __t; __t = t; return __t; }();
++    return [&t]() -> int {int __t; __t = t; return __t; }();
++}
+-- 
+1.8.4.2
+




More information about the arch-commits mailing list