summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0332-PR-c-48292.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/0332-PR-c-48292.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/0332-PR-c-48292.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0332-PR-c-48292.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0332-PR-c-48292.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0332-PR-c-48292.patch
new file mode 100644
index 0000000000..9bc5588324
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0332-PR-c-48292.patch
@@ -0,0 +1,71 @@
1From 8b1d0e0f8d8667c8f71aa00080108115d6891354 Mon Sep 17 00:00:00 2001
2From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Wed, 25 May 2011 15:26:14 +0000
4Subject: [PATCH] PR c++/48292
5 * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of
6 function parameter pack.
7 (tsubst_pack_expansion): Likewise.
8
9git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174207 138bc75d-0d04-0410-961f-82ee72b054a4
10
11index b16d229..d379a8c 100644
12--- a/gcc/cp/pt.c
13+++ b/gcc/cp/pt.c
14@@ -8690,7 +8690,12 @@ tsubst_pack_expansion (tree t, tree args, tsubst_flags_t complain,
15 have the wrong value for a recursive call. Just make a
16 dummy decl, since it's only used for its type. */
17 arg_pack = tsubst_decl (parm_pack, args, complain);
18- arg_pack = make_fnparm_pack (arg_pack);
19+ if (arg_pack && FUNCTION_PARAMETER_PACK_P (arg_pack))
20+ /* Partial instantiation of the parm_pack, we can't build
21+ up an argument pack yet. */
22+ arg_pack = NULL_TREE;
23+ else
24+ arg_pack = make_fnparm_pack (arg_pack);
25 }
26 }
27 else
28@@ -9780,14 +9785,14 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
29 if (DECL_TEMPLATE_PARM_P (t))
30 SET_DECL_TEMPLATE_PARM_P (r);
31
32- /* An argument of a function parameter pack is not a parameter
33- pack. */
34- FUNCTION_PARAMETER_PACK_P (r) = false;
35-
36 if (expanded_types)
37 /* We're on the Ith parameter of the function parameter
38 pack. */
39 {
40+ /* An argument of a function parameter pack is not a parameter
41+ pack. */
42+ FUNCTION_PARAMETER_PACK_P (r) = false;
43+
44 /* Get the Ith type. */
45 type = TREE_VEC_ELT (expanded_types, i);
46
47new file mode 100644
48index 0000000..0ec69af
49--- /dev/null
50+++ b/gcc/testsuite/g++.dg/cpp0x/variadic109.C
51@@ -0,0 +1,17 @@
52+// PR c++/48292
53+// { dg-options -std=c++0x }
54+
55+template <typename... Args> int g(Args...);
56+
57+template <int N = 0>
58+struct A
59+{
60+ template <typename... Args>
61+ static auto f(Args... args) -> decltype(g(args...));
62+};
63+
64+int main()
65+{
66+ A<>::f();
67+ return 0;
68+}
69--
701.7.0.4
71