ahatanak added a comment.

I had a discussion with Duncan today and he pointed out that perhaps we 
shouldn't allow users to annotate a struct with "trivial_abi" if one of its 
subobjects is non-trivial and is not annotated with "trivial_abi" since that 
gives users too much power.

Should we error out or drop "trivial_abi" from struct Outer when the following 
code is compiled?

  struct Inner1 {
    ~Inner1(); // non-trivial
    int x;
  };
  
  struct __attribute__((trivial_abi)) Outer {
    ~Outer();
    Inner1 x;
  };

The current patch doesn't error out or drop the attribute, but the patch would 
probably be much simpler if we didn't allow it.


https://reviews.llvm.org/D41039



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

Reply via email to