* method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@185705
138bc75d-0d04-0410-961f-
82ee72b054a4
+2012-03-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/52582
+ * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
+
2012-03-22 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
DECL_DELETED_FN (fn) = deleted_p;
DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p;
}
+ DECL_EXTERNAL (fn) = true;
DECL_NOT_REALLY_EXTERN (fn) = 1;
DECL_DECLARED_INLINE_P (fn) = 1;
gcc_assert (!TREE_USED (fn));
+2012-03-22 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/torture/pr52582.C: New.
+
2012-03-22 Georg-Johann Lay <avr@gjlay.de>
Backport from 2012-03-20 mainline r185583.
--- /dev/null
+// PR c++/52582
+
+inline void *operator new (__SIZE_TYPE__, void *p) throw ()
+{
+ return p;
+}
+struct B
+{
+ virtual ~B ();
+ B ();
+};
+struct A : B
+{
+ A () : B () {}
+ virtual void bar ();
+};
+void
+foo ()
+{
+ char a[64];
+ B *b = new (&a) A ();
+ b->~B ();
+}