summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0028-PR-c-48313.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-04-30 12:37:47 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-05 12:26:41 +0100
commit478deec11f3349d61b1a922f047dc958dc07262a (patch)
tree1843907b36de2bcb8f821d49d8c9a88014ef0dc7 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0028-PR-c-48313.patch
parentd42dccf886983ba14ccc868041d7bea0cf1a260e (diff)
downloadpoky-478deec11f3349d61b1a922f047dc958dc07262a.tar.gz
gcc-4.6.0: Backport FSF 4.6 branch patches
This is set of bugfixes that has been done on FSF gcc-4_2-branch since 4.6.0 was released They will roll into 4.6.1 release once that happens in coming approx 6 months time then we can simply remove them thats the reason so use a separate .inc file to define the SRC_URI additions (From OE-Core rev: b0d5b9f12adbce2c4a0df6059f5671188cd32293) 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/0028-PR-c-48313.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0028-PR-c-48313.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0028-PR-c-48313.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0028-PR-c-48313.patch
new file mode 100644
index 0000000000..f37fb0337d
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0028-PR-c-48313.patch
@@ -0,0 +1,50 @@
1From 8d72f0bd42615d92c0db226238694eedb52914d3 Mon Sep 17 00:00:00 2001
2From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Tue, 29 Mar 2011 14:25:22 +0000
4Subject: [PATCH 028/200] PR c++/48313
5 * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
6 from overloaded function.
7
8git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@171669 138bc75d-0d04-0410-961f-82ee72b054a4
9
10index 95b82ee..2e18588 100644
11--- a/gcc/cp/pt.c
12+++ b/gcc/cp/pt.c
13@@ -13936,7 +13936,10 @@ maybe_adjust_types_for_deduction (unification_kind_t strict,
14 && TYPE_REF_IS_RVALUE (*parm)
15 && TREE_CODE (TREE_TYPE (*parm)) == TEMPLATE_TYPE_PARM
16 && cp_type_quals (TREE_TYPE (*parm)) == TYPE_UNQUALIFIED
17- && arg_expr && real_lvalue_p (arg_expr))
18+ && (arg_expr ? real_lvalue_p (arg_expr)
19+ /* try_one_overload doesn't provide an arg_expr, but
20+ functions are always lvalues. */
21+ : TREE_CODE (*arg) == FUNCTION_TYPE))
22 *arg = build_reference_type (*arg);
23
24 /* [temp.deduct.call]
25new file mode 100644
26index 0000000..160296f
27--- /dev/null
28+++ b/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C
29@@ -0,0 +1,18 @@
30+// PR c++/48313
31+// { dg-options -std=c++0x }
32+
33+template<typename F>
34+void f(F&&) { }
35+
36+void g() { }
37+
38+template<typename T> void h() { }
39+
40+int main()
41+{
42+ f( g ); // OK
43+ void (&p)() = h<int>;
44+ f( p ); // OK
45+ f( h<int> ); // ???
46+}
47+
48--
491.7.0.4
50