Commit d282fcb2 by Nathan Sidwell Committed by Nathan Sidwell

class.c (check_field_decls): Pointers to member do not a non-pod struct make, as per DR 148.

cp:
	* class.c (check_field_decls): Pointers to member do not a
	non-pod struct make, as per DR 148.
testsuite:
	* g++.old-deja/g++.other/pod1.C: New test.

From-SVN: r40186
parent f86fdf68
2001-03-02 Nathan Sidwell <nathan@codesourcery.com>
* class.c (check_field_decls): Pointers to member do not a
non-pod struct make, as per DR 148.
2001-03-02 Nathan Sidwell <nathan@codesourcery.com>
* call.c (joust): cp_pedwarn when using gnu extension concerning
worst conversion sequences.
......
......@@ -3594,10 +3594,9 @@ check_field_decls (t, access_decls, empty_p,
if (DECL_MUTABLE_P (x) || TYPE_HAS_MUTABLE_P (type))
CLASSTYPE_HAS_MUTABLE (t) = 1;
if (! pod_type_p (type)
/* For some reason, pointers to members are POD types themselves,
but are not allowed in POD structs. Silly. */
|| TYPE_PTRMEM_P (type) || TYPE_PTRMEMFUNC_P (type))
if (! pod_type_p (type))
/* DR 148 now allows pointers to members (which are POD themselves),
to be allowed in POD structs. */
CLASSTYPE_NON_POD_P (t) = 1;
/* If any field is const, the structure type is pseudo-const. */
......
2001-03-02 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.other/pod1.C: New test.
2001-03-02 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.ext/overload1.C: New test.
2001-03-01 Nathan Sidwell <nathan@codesourcery.com>
......
// Build don't link:
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 28 Feb 2001 <nathan@codesourcery.com>
// DR 148. Now allows pointer to members in POD struct.
struct X
{
int X::*m;
int (X::*f) ();
};
void Foo (int, ...);
void Baz ()
{
X x;
Foo (1, x);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment