diff options
author | Khem Raj <raj.khem@gmail.com> | 2011-06-12 20:56:57 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-14 15:29:15 +0100 |
commit | ec9b6d061b8495b9316ae90e5a71a499ef2873ee (patch) | |
tree | dc922c9ddd98f937eb2095b07f6c3b5043e3a491 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0347-PR-c-45401.patch | |
parent | fbc60cc5ba2284bfcaea8c82001a49b7795cc2a2 (diff) | |
download | poky-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.patch | 51 |
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 @@ | |||
1 | From 6674aae1e1421a2d600bf9d0a1e501873a88b8f6 Mon Sep 17 00:00:00 2001 | ||
2 | From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | ||
3 | Date: Thu, 26 May 2011 03:06:09 +0000 | ||
4 | Subject: [PATCH] PR c++/45401 | ||
5 | * decl.c (grokdeclarator): Don't change type when adding rvalue ref | ||
6 | to another reference type. | ||
7 | |||
8 | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174260 138bc75d-0d04-0410-961f-82ee72b054a4 | ||
9 | |||
10 | index 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 | ||
38 | new file mode 100644 | ||
39 | index 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 | -- | ||
50 | 1.7.0.4 | ||
51 | |||