Bhramar.vatsa added a comment.

@dblaikie 
The condition "FieldClass->isPOD()" returns false for the following case (when 
considering field 'struct foo t' of 'struct foo1') :

  class foo {
     foo() = default;
     int _a;
  };
  
  struct foo1 {
      struct foo t;
  } t1;

The same code though doesn't give any warning for gcc: 
https://godbolt.org/z/f4chraerY

This is because the way it works for CXXRecordDecl : 
https://github.com/llvm/llvm-project/blob/1e3a02162db20264e9615b1346420c8d199cb347/clang/lib/AST/DeclCXX.cpp#L928

So, there seems to be a difference the way GCC is handling this case, in 
comparison to how now clang handles it.

For the same case, `D->getType().isCXX11PODType()` (or `isPODType()`) indicates 
it to be a POD type. So, we think that this should be further changed such that 
it doesn't break the code that works with GCC.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D117616

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

Reply via email to