aboutsummaryrefslogtreecommitdiffstats
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 @@
+From cabe6e4db49d70512f795dd87a2c6e67f2587648 Mon Sep 17 00:00:00 2001
+From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Wed, 25 May 2011 01:08:24 +0000
+Subject: [PATCH] PR c++/47336
+ * error.c (dump_template_bindings): Suppress access control.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174160 138bc75d-0d04-0410-961f-82ee72b054a4
+
+index 28305d2..2477123 100644
+--- a/gcc/cp/error.c
++++ b/gcc/cp/error.c
+@@ -312,7 +312,9 @@ dump_template_bindings (tree parms, tree args, VEC(tree,gc)* typenames)
+ pp_cxx_whitespace (cxx_pp);
+ pp_equal (cxx_pp);
+ pp_cxx_whitespace (cxx_pp);
++ push_deferring_access_checks (dk_no_check);
+ t = tsubst (t, args, tf_none, NULL_TREE);
++ pop_deferring_access_checks ();
+ /* Strip typedefs. We can't just use TFF_CHASE_TYPEDEF because
+ pp_simple_type_specifier doesn't know about it. */
+ t = strip_typedefs (t);
+new file mode 100644
+index 0000000..e7da961
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/cpp0x/error3.C
+@@ -0,0 +1,24 @@
++// PR c++/47336
++// { dg-options -std=c++0x }
++
++template <typename T>
++void g(T t)
++{
++ t+1; // { dg-error "no match" }
++}
++
++template <typename S>
++class C
++{
++ struct D {} d;
++public:
++ decltype(g(d)) h()
++ {
++ return g(d);
++ }
++};
++
++int main()
++{
++ C<int>().h();
++}
+--
+1.7.0.4
+