summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-06-12 20:56:57 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-14 15:29:15 +0100
commitec9b6d061b8495b9316ae90e5a71a499ef2873ee (patch)
treedc922c9ddd98f937eb2095b07f6c3b5043e3a491 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch
parentfbc60cc5ba2284bfcaea8c82001a49b7795cc2a2 (diff)
downloadpoky-ec9b6d061b8495b9316ae90e5a71a499ef2873ee.tar.gz
gcc-4.6.0: Bring in patches from FSF 4.6 branch
This brings in new patches from 4.6 release branch updates the comment section of existing branch to not contain patch numbers. Tested build on qemu for arm ppc mips x86 and x86_64 (From OE-Core rev: 3968f33b6542cf20cf63cf49bfbc033bd2486295) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch
new file mode 100644
index 0000000000..eaf6921b52
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch
@@ -0,0 +1,51 @@
1From 6674aae1e1421a2d600bf9d0a1e501873a88b8f6 Mon Sep 17 00:00:00 2001
2From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Thu, 26 May 2011 03:06:09 +0000
4Subject: [PATCH] PR c++/45401
5 * decl.c (grokdeclarator): Don't change type when adding rvalue ref
6 to another reference type.
7
8git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174260 138bc75d-0d04-0410-961f-82ee72b054a4
9
10index de53541..b3de096 100644
11--- a/gcc/cp/decl.c
12+++ b/gcc/cp/decl.c
13@@ -9017,13 +9017,18 @@ grokdeclarator (const cp_declarator *declarator,
14 to create the type "rvalue reference to cv TD' creates the
15 type TD."
16 */
17- if (!VOID_TYPE_P (type))
18+ if (VOID_TYPE_P (type))
19+ /* We already gave an error. */;
20+ else if (TREE_CODE (type) == REFERENCE_TYPE)
21+ {
22+ if (declarator->u.reference.rvalue_ref)
23+ /* Leave type alone. */;
24+ else
25+ type = cp_build_reference_type (TREE_TYPE (type), false);
26+ }
27+ else
28 type = cp_build_reference_type
29- ((TREE_CODE (type) == REFERENCE_TYPE
30- ? TREE_TYPE (type) : type),
31- (declarator->u.reference.rvalue_ref
32- && (TREE_CODE(type) != REFERENCE_TYPE
33- || TYPE_REF_IS_RVALUE (type))));
34+ (type, declarator->u.reference.rvalue_ref);
35
36 /* In C++0x, we need this check for direct reference to
37 reference declarations, which are forbidden by
38new file mode 100644
39index 0000000..569ee5b
40--- /dev/null
41+++ b/gcc/testsuite/g++.dg/cpp0x/rv-restrict.C
42@@ -0,0 +1,6 @@
43+// PR c++/45401
44+// { dg-options -std=c++0x }
45+
46+typedef int &__restrict restrictLvref;
47+typedef restrictLvref &&rvrefToRestrictLvref;
48+typedef restrictLvref rvrefToRestrictLvref;
49--
501.7.0.4
51