[PATCH] D34198: Fix __has_trivial_destructor crash when the type is incomplete with unknown array bounds.
Puneetha K via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 21 03:37:25 PDT 2017
puneetha marked 2 inline comments as done.
puneetha added inline comments.
================
Comment at: lib/Sema/SemaExprCXX.cpp:4128
+ return true;
+ }
+
----------------
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.
https://reviews.llvm.org/D34198
More information about the cfe-commits
mailing list