rjmccall added inline comments.
================
Comment at: lib/AST/Decl.cpp:3937
+  //     -- [has] virtual member functions or virtual base classes, or
+  //     -- has subobjects of nonzero size or bit-fields of nonzero length
+  if (const auto *CXXRD = dyn_cast<CXXRecordDecl>(RD)) {
----------------
rsmith wrote:
> rjmccall wrote:
> > Surely a bit-field of nonzero length is a subobject of nonzero size.
> Usually, but not if it's unnamed (unnamed bit-fields aren't subobjects). In 
> any case, this is a quote from the C++ standard.
Fair enough.


================
Comment at: lib/AST/Decl.cpp:3945
+        return false;
+  }
+
----------------
rsmith wrote:
> rjmccall wrote:
> > Is this a C/C++ modules interaction?
> We don't allow C modules to be imported into C++ compilations or vice versa, 
> so this should be unreachable unless we start allowing the attribute in C. 
> Nice catch.
> 
> I guess the question is, then: should we allow this attribute in C (either 
> with a GNU `__attribute__` spelling or as a C20 `[[clang::attribute]]`)? I 
> don't think it's really useful in C (empty structs are ill-formed, and you 
> can't reuse tail padding because structs are always trivial, at least in 
> standard C), so I'm inclined to say no.
I agree that it seems relatively useless in C, and there's no reason to think 
they'd use this language design if they decided they did want it.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63451/new/

https://reviews.llvm.org/D63451



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to