[PATCH] D34198: Fix __has_trivial_destructor crash when the type is incomplete with unknown array bounds.
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 21 11:16:37 PDT 2017
rjmccall added inline comments.
================
Comment at: lib/Sema/SemaExprCXX.cpp:4128
+ return true;
+ }
+
----------------
puneetha wrote:
> rjmccall wrote:
> > I don't understand the difference you're creating between traits here. Three specific traits about destructibility allow incomplete array types regardless of whether the base type is incomplete, but the rest do not?
> >
> > Anyway, I think what you want here is basically just:
> >
> > if (auto ArrayTy = S.Context.getAsIncompleteArrayType(ArgTy)) {
> > ArgTy = ArrayTy->getElementType();
> > }
> Of my understanding, these traits are defined by MSVC. There is no mention of them in the GCC type-traits documentation. For these traits, GCC lets us pass an array of incomplete bounds for any base type, complete or incomplete.
>
> Please correct me if I am wrong.
I see. If we're matching GCC bug-for-bug, it doesn't really matter if the behavior seems inconsistent.
https://reviews.llvm.org/D34198
More information about the cfe-commits
mailing list