diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 88dde7c917882..9ad07f7d2220a 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -1131,6 +1131,10 @@ class ConstExprEmitter : if (const auto *S = dyn_cast(subExpr)) return CGM.GetAddrOfConstantStringFromLiteral(S).getPointer(); return nullptr; + case CK_NullToPointer: + if (llvm::Constant *C = Visit(subExpr, destType)) + return CGM.EmitNullConstant(destType); + return nullptr; case CK_IntToOCLSampler: llvm_unreachable("global sampler variables are not generated"); @@ -1187,7 +1191,6 @@ class ConstExprEmitter : case CK_IntegralComplexToFloatingComplex: case CK_PointerToIntegral: case CK_PointerToBoolean: - case CK_NullToPointer: case CK_IntegralCast: case CK_BooleanToSignedIntegral: case CK_IntegralToPointer: