[PATCH] Implement DR85: Redeclaration of member class

David Majnemer david.majnemer at gmail.com
Sun Jun 9 23:51:40 PDT 2013


The attached patch implements DR85 [*] which disallows the existence of a
declaration of a member class that isn't a forward declaration before it's
definition.

This means that the following would be disallowed:
class A {
  struct B; // note here
  struct B; // error here
};

as well as:
class C {
  struct B {}; // note here
  struct B; // error here
};

I'm very open to suggestions on the diagnostic, I couldn't think of a great
one that doesn't boil down to "this is forbidden because the standard says
so."

[*] http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#85

Thanks
-- 
David Majnemer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130609/736d7808/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dr85.diff
Type: application/octet-stream
Size: 5510 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130609/736d7808/attachment.obj>


More information about the cfe-commits mailing list