rjmccall added inline comments.
================ Comment at: include/clang/AST/Type.h:1133 + /// Check if this is or contains a non-trivial C struct/union type. + bool hasNonTrivialPrimitiveCStruct() const; ---------------- ahatanak wrote: > rjmccall wrote: > > You only want these checks to trigger on unions with non-trivial members > > (or structs containing them), right? How about something like > > `hasNonTrivialPrimitiveCUnionMember()`? Or maybe make it more descriptive > > for the use sites, like `isPrimitiveCRestrictedType()`? > > > > Also, it would be nice if the fast path of this could be inlined so that > > clients usually didn't had to make a call at all. You can write the > > `getBaseElementTypeUnsafe()->getAs<RecordType>()` part in an `inline` > > implementation at the bottom this file. > Since we don't keep track of whether a struct or union is or contains unions > with non-trivial members, we'll have to use the visitors to detect such > structs or unions or, to do it faster, add a bit to `RecordDeclBits` that > indicates the presence of non-trivial unions. I guess it's okay to add > another bit to `RecordDeclBits`? It looks like there's plenty of space in `RecordDeclBits`, yeah. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D63753/new/ https://reviews.llvm.org/D63753 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits