[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