diff options
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.patch | 53 |
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 @@ | |||
1 | From cabe6e4db49d70512f795dd87a2c6e67f2587648 Mon Sep 17 00:00:00 2001 | ||
2 | From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | ||
3 | Date: Wed, 25 May 2011 01:08:24 +0000 | ||
4 | Subject: [PATCH] PR c++/47336 | ||
5 | * error.c (dump_template_bindings): Suppress access control. | ||
6 | |||
7 | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174160 138bc75d-0d04-0410-961f-82ee72b054a4 | ||
8 | |||
9 | index 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); | ||
22 | new file mode 100644 | ||
23 | index 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 | -- | ||
52 | 1.7.0.4 | ||
53 | |||