================ @@ -1920,9 +1920,17 @@ static bool EvaluateComplex(const Expr *E, ComplexValue &Res, EvalInfo &Info); static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result, EvalInfo &Info); static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result); +static bool EvaluateStringAsLValue(EvalInfo &Info, const Expr *E, + QualType &CharTy, LValue &String); +static const StringLiteral *StringLValueIsLiteral(EvalInfo &Info, + LValue &String, + QualType CharTy, + uint64_t &Offset); ---------------- cor3ntin wrote:
This is a pretty confusing interface. Can we have for example? ```` GetLValueAsStringLiteral(LValue) -> StringLiteral*; EvaluateStringLiteral(StringLiteral*, Offset) -> unsigned; ``` https://github.com/llvm/llvm-project/pull/135864 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits