summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0322-PR-c-47336.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0322-PR-c-47336.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0322-PR-c-47336.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0322-PR-c-47336.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0322-PR-c-47336.patch
new file mode 100644
index 0000000000..d5bdf2ca9d
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0322-PR-c-47336.patch
@@ -0,0 +1,53 @@
1From cabe6e4db49d70512f795dd87a2c6e67f2587648 Mon Sep 17 00:00:00 2001
2From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Wed, 25 May 2011 01:08:24 +0000
4Subject: [PATCH] PR c++/47336
5 * error.c (dump_template_bindings): Suppress access control.
6
7git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174160 138bc75d-0d04-0410-961f-82ee72b054a4
8
9index 28305d2..2477123 100644
10--- a/gcc/cp/error.c
11+++ b/gcc/cp/error.c
12@@ -312,7 +312,9 @@ dump_template_bindings (tree parms, tree args, VEC(tree,gc)* typenames)
13 pp_cxx_whitespace (cxx_pp);
14 pp_equal (cxx_pp);
15 pp_cxx_whitespace (cxx_pp);
16+ push_deferring_access_checks (dk_no_check);
17 t = tsubst (t, args, tf_none, NULL_TREE);
18+ pop_deferring_access_checks ();
19 /* Strip typedefs. We can't just use TFF_CHASE_TYPEDEF because
20 pp_simple_type_specifier doesn't know about it. */
21 t = strip_typedefs (t);
22new file mode 100644
23index 0000000..e7da961
24--- /dev/null
25+++ b/gcc/testsuite/g++.dg/cpp0x/error3.C
26@@ -0,0 +1,24 @@
27+// PR c++/47336
28+// { dg-options -std=c++0x }
29+
30+template <typename T>
31+void g(T t)
32+{
33+ t+1; // { dg-error "no match" }
34+}
35+
36+template <typename S>
37+class C
38+{
39+ struct D {} d;
40+public:
41+ decltype(g(d)) h()
42+ {
43+ return g(d);
44+ }
45+};
46+
47+int main()
48+{
49+ C<int>().h();
50+}
51--
521.7.0.4
53