diff --git a/clang/lib/AST/Interp/ByteCodeExprGen.cpp b/clang/lib/AST/Interp/ByteCodeExprGen.cpp --- a/clang/lib/AST/Interp/ByteCodeExprGen.cpp +++ b/clang/lib/AST/Interp/ByteCodeExprGen.cpp @@ -958,6 +958,8 @@ template bool ByteCodeExprGen::VisitTypeTraitExpr(const TypeTraitExpr *E) { + if (DiscardResult) + return true; return this->emitConstBool(E->getValue(), E); } diff --git a/clang/test/AST/Interp/literals.cpp b/clang/test/AST/Interp/literals.cpp --- a/clang/test/AST/Interp/literals.cpp +++ b/clang/test/AST/Interp/literals.cpp @@ -895,6 +895,8 @@ (void)5, (void)6; 1 ? 0 : 1; + __is_trivial(int); + return 0; }