diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -1133,6 +1133,10 @@ return CGM.EmitNullConstant(destType); return nullptr; } + case CK_ArrayToPointerDecay: + if (const auto *S = dyn_cast(subExpr)) + return CGM.GetAddrOfConstantStringFromLiteral(S).getPointer(); + return nullptr; case CK_IntToOCLSampler: llvm_unreachable("global sampler variables are not generated"); @@ -1171,7 +1175,6 @@ case CK_CPointerToObjCPointerCast: case CK_BlockPointerToObjCPointerCast: case CK_AnyPointerToBlockPointerCast: - case CK_ArrayToPointerDecay: case CK_FunctionToPointerDecay: case CK_BaseToDerived: case CK_DerivedToBase: