================
@@ -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

Reply via email to