summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0299-PR-c-49066.patch
blob: 334336f37db34edbe15ef9574d2ec74ee4e699fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From 6c1b484bec9f87aaa5c648304ca556dd622b4206 Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 21 May 2011 21:35:50 +0000
Subject: [PATCH] 	PR c++/49066
 	* decl.c (duplicate_decls): Preserve DECL_DELETED_FN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174003 138bc75d-0d04-0410-961f-82ee72b054a4

index 2905b49..aeb893f 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -1686,6 +1686,7 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
 	  error ("deleted definition of %qD", newdecl);
 	  error ("after previous declaration %q+D", olddecl);
 	}
+      DECL_DELETED_FN (newdecl) |= DECL_DELETED_FN (olddecl);
     }
 
   /* Deal with C++: must preserve virtual function table size.  */
new file mode 100644
index 0000000..69bd0ac
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted26.C
@@ -0,0 +1,7 @@
+// PR c++/49066
+// { dg-options -std=c++0x }
+
+void foo() = delete;		// { dg-error "declared here" }
+void foo();
+
+int main() { foo(); }		// { dg-error "deleted" }
-- 
1.7.0.4