+2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/48798
+ * semantics.c (finish_base_specifier): cv-qualified base class
+ is fine, per DR 484.
+
2011-04-28 Dodji Seketeli <dodji@redhat.com>
PR c++/48656
{
if (cp_type_quals (base) != 0)
{
- error ("base class %qT has cv qualifiers", base);
+ /* DR 484: Can a base-specifier name a cv-qualified
+ class type? */
base = TYPE_MAIN_VARIANT (base);
}
result = build_tree_list (access, base);
+2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/48798
+ * g++.dg/inherit/pr48798.C: New.
+ * g++.old-deja/g++.other/base1.C: Adjust.
+
2011-04-28 Dodji Seketeli <dodji@redhat.com>
PR c++/48656
--- /dev/null
+// PR c++/48798
+
+typedef struct A {} const t;
+struct B : t {};
// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 25 Nov 2000 <nathan@codesourcery.com>
-// We lost information about which base wasn't an aggregate type, plus we
-// allowed cv qualifed bases via typedefs.
+// We lost information about which base wasn't an aggregate type.
typedef int I;
typedef int cI;
struct B : I {}; // { dg-error "" } not an aggregate
struct C : cI {}; // { dg-error "" } not an aggregate
-struct D : cA {}; // { dg-error "" } cv qualified
+struct D : cA {}; // cv-qualified is fine per DR 484
struct E : pA {};