summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-06-17 17:11:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-23 11:50:07 +0100
commit0faa5f72999fea82fadda8bab70abea2303216c7 (patch)
tree05a8c18d2f67d883f94d2bd6f060ab0f4ac7f156 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch
parentc2007ba4cdb64fa9e308d3dae395c03ef4cc9161 (diff)
downloadpoky-0faa5f72999fea82fadda8bab70abea2303216c7.tar.gz
gcc-4.6: Switch to using svn SRC_URI for recipe
We call the recipes 4.6 Remove the backport patches (From OE-Core rev: 68b545f4ff719f2b6e57d68b002dc9845c7a14ae) 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/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch
deleted file mode 100644
index 37352272cf..0000000000
--- a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0087-semantics.c-finish_decltype_type-Add-complain-parm.patch
+++ /dev/null
@@ -1,132 +0,0 @@
1From 2f7a2d284d42cfbff01ee024af4cbaeaff766ee5 Mon Sep 17 00:00:00 2001
2From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Fri, 8 Apr 2011 15:02:00 +0000
4Subject: [PATCH] * semantics.c (finish_decltype_type): Add complain parm.
5 * cp-tree.h: Adjust.
6 * parser.c (cp_parser_decltype): Adjust.
7 * pt.c (tsubst): Adjust.
8
9git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172192 138bc75d-0d04-0410-961f-82ee72b054a4
10
11index 4b49046..176a4b8 100644
12--- a/gcc/cp/cp-tree.h
13+++ b/gcc/cp/cp-tree.h
14@@ -5344,7 +5344,7 @@ extern tree baselink_for_fns (tree);
15 extern void finish_static_assert (tree, tree, location_t,
16 bool);
17 extern tree describable_type (tree);
18-extern tree finish_decltype_type (tree, bool);
19+extern tree finish_decltype_type (tree, bool, tsubst_flags_t);
20 extern tree finish_trait_expr (enum cp_trait_kind, tree, tree);
21 extern tree build_lambda_expr (void);
22 extern tree build_lambda_object (tree);
23diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
24index 4260f6d..daba2fc 100644
25--- a/gcc/cp/parser.c
26+++ b/gcc/cp/parser.c
27@@ -10457,7 +10457,8 @@ cp_parser_decltype (cp_parser *parser)
28 return error_mark_node;
29 }
30
31- return finish_decltype_type (expr, id_expression_or_member_access_p);
32+ return finish_decltype_type (expr, id_expression_or_member_access_p,
33+ tf_warning_or_error);
34 }
35
36 /* Special member functions [gram.special] */
37diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
38index e716ca6..ed48203 100644
39--- a/gcc/cp/pt.c
40+++ b/gcc/cp/pt.c
41@@ -11025,7 +11025,7 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
42 type = lambda_return_type (type);
43 else
44 type = finish_decltype_type
45- (type, DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t));
46+ (type, DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t), complain);
47 return cp_build_qualified_type_real (type,
48 cp_type_quals (t)
49 | cp_type_quals (type),
50diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
51index c88b4bb..3a85ddb 100644
52--- a/gcc/cp/semantics.c
53+++ b/gcc/cp/semantics.c
54@@ -4785,7 +4785,8 @@ describable_type (tree expr)
55 a full expression. */
56
57 tree
58-finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
59+finish_decltype_type (tree expr, bool id_expression_or_member_access_p,
60+ tsubst_flags_t complain)
61 {
62 tree orig_expr = expr;
63 tree type = NULL_TREE;
64@@ -4798,7 +4799,8 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
65 || (TREE_CODE (expr) == BIT_NOT_EXPR
66 && TYPE_P (TREE_OPERAND (expr, 0))))
67 {
68- error ("argument to decltype must be an expression");
69+ if (complain & tf_error)
70+ error ("argument to decltype must be an expression");
71 return error_mark_node;
72 }
73
74@@ -4865,7 +4867,9 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
75 if (OVL_CHAIN (expr)
76 || TREE_CODE (OVL_FUNCTION (expr)) == TEMPLATE_DECL)
77 {
78- error ("%qE refers to a set of overloaded functions", orig_expr);
79+ if (complain & tf_error)
80+ error ("%qE refers to a set of overloaded functions",
81+ orig_expr);
82 return error_mark_node;
83 }
84 else
85@@ -4917,7 +4921,8 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
86 default:
87 gcc_assert (TYPE_P (expr) || DECL_P (expr)
88 || TREE_CODE (expr) == SCOPE_REF);
89- error ("argument to decltype must be an expression");
90+ if (complain & tf_error)
91+ error ("argument to decltype must be an expression");
92 return error_mark_node;
93 }
94 }
95@@ -5012,7 +5017,8 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
96
97 if (!type || type == unknown_type_node)
98 {
99- error ("type of %qE is unknown", expr);
100+ if (complain & tf_error)
101+ error ("type of %qE is unknown", expr);
102 return error_mark_node;
103 }
104
105new file mode 100644
106index 0000000..0a95a96
107--- /dev/null
108+++ b/gcc/testsuite/g++.dg/cpp0x/sfinae7.C
109@@ -0,0 +1,20 @@
110+// { dg-options -std=c++0x }
111+
112+struct A
113+{
114+ void f();
115+ void f(int);
116+ typedef int g;
117+};
118+
119+template <class T> decltype (T::f) f();
120+template <class T> void f();
121+
122+template <class T> decltype (T::g) g();
123+template <class T> void g();
124+
125+int main()
126+{
127+ f<A>();
128+ g<A>();
129+}
130--
1311.7.0.4
132